0
基本上就是我想要做的是限制我的查詢MySQL的左連接限制如預期
我下面的查詢我至5%的響應意見
SELECT comments.id, comments.comment,
replies.id reply_id, replies.comment_id, replies.reply
FROM comments
LEFT JOIN (SELECT id FROM replies LIMIT 3) replies
ON comments.id = replies.comment_id
WHERE comments.user_id = ? ORDER BY comments.id DESC LIMIT 3
$comments = array();
$comm_replies = array();
while($row = $query->fetch(PDO::FETCH_ASSOC)) {
$comm_id = $row['id'];
$comm_user_id = $row['user_id'];
$comm = $row['comment'];
if (empty($row['reply_id'])) {
continue;
}
$comments[$comm_id] = $comm;
$comm_replies[$comm_id][] = $row;
}
foreach ($comments as $comm_id => $comm) {
echo "comment - $comm\n";
if (!isset($comm_replies[$comm_id])) {
continue;
}
$prefix = '---';
foreach ($comm_replies[$comm_id] as $reply_id => $row) {
echo "$prefix $row['reply_id'], $row['reply']\n";
$prefix .= '-';
}
}
所以不工作我「M試圖輸出如下:
1.Question一個
---第一反應
---第二次迴應
---第三響應
2.Question兩個
---第一反應
---第二次迴應
---第三響應
3.Question三
---第一反應
---第二次迴應
---第三響應
而是我所得到的是這樣的:
1.Question一個
---第一反應
---第二次迴應
我不知道爲什麼它出來不僅僅是使用第一個問題和2個迴應。
感謝您提前提供任何幫助。
感謝您的快速反應@gpupo但是,我不跟着你...你的意思是這樣...左連接(選擇*從答覆WHERE comments.id = answers.comment_id極限3),因爲這不適用於我 – Benjamin