[英]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.