繁体   English   中英

使用一个查询的结果作为MySQL上另一个查询的输入

[英]Use result from one query as an input into another query on MySQL

我试图使用一个查询的结果作为另一个查询的输入,但我很难过。 我想过使用JOIN,但我认为在这种情况下,我需要分别运行两个查询。 基本上我在我的数据库中有一个文章列表。 当我遍历从第一个查询中获得的列表或文章时,我想搜索第二个表以找出每篇文章的投票数。

这是代码:

<?php
  $sql=mysql_query("SELECT * FROM discussion_links WHERE link_side = 'Michigan'");
  while($row = mysql_fetch_array($sql)) {
?>

<div class="top-links-wrapper">
    <div>
       <div class="link-info">
           <a class="link-title" href="http://<?php echo $row['link_url'] ?>">
           <?php echo $row['link_title'] . "</a>"; ?>
           <p class="link-source"><?php echo $row['link_source'] . "</p>" ?>
       </div>
       <div class="link-vote-wrapper">
           <span class="link-votes">
           <?php    
                $sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id'] .")";
                $num_rows = mysql_num_rows($sql2);
                echo "$num_rows";
            ?>
           </span>
       </div>
    </div>
</div>

谢谢

您可以加入两个查询试试这个

SELECT dl.* , lv.*
FROM discussion_links dl
LEFT JOIN link_votes lv ON lv.link_id = dl.link_id
WHERE link_side = 'Michigan'

更改

$sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id'] .")";

$sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id']);

结束括号)是函数调用的一部分而不是查询

或者更好的是创建一个查询:

SELECT * FROM discussion_links d 
JOIN link_votes v
on d.link_id = v.link_id
WHERE d.link_side = 'Michigan'

您应该替换SELECT *并选择所需的列

修复,在第二个查询中出错:

$sql2=mysql_query("SELECT * FROM link_votes WHERE link_id = " . $row['link_id']);

它现在有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM