你知道Facebook主頁如何列出所有最近的帖子?它顯示發佈的用戶,他們的實際發佈內容以及該帖子附帶的前幾個評論。這就是我想要實現的目標,但是我很難建立一個可以收集所有數據的單個查詢。檢索來自MySQL表格的帖子的前幾個評論
我有3個表:用途,帖子和評論。每個人都有一個唯一的ID,但他們引用了彼此的ID。即,註釋表具有用於發佈的用戶的user_id和其附加的帖子的post_id的列。
當時我查詢SQL來收集所有帖子。我和我的用戶和評論表,瞭解海報的用戶名和一個總的職位有多少評論了,就像這樣:
$query = "
SELECT `posts`.`id`,`posts`.`message`,`posts`.`link`,
`posts`.`posted`,`posts`.`category`,`posts`.`user_id`,
`users`.`username`,
count(`comments`.`id`)
FROM `posts`
INNER JOIN `users`
ON `posts`.`user_id`=`users`.`id`
JOIN `comments`
ON `comments`.`post_id`=`posts`.`id`
WHERE `posts`.`group_id` = '$id'
AND `posts`.`category`='$filter'
GROUP BY `posts`.`id`
ORDER BY `posts`.`posted`
DESC
";
但不是找到多少評論的帖子有,我反而喜歡閱讀前幾個帖子。任何人都可以想出一種方法來實現這一點只有一個查詢?
感謝您的回覆。我實際上使用mysqli。另外,我的問題不是如何限制我的結果,而是如何得到結果。如果在我的頁面上會顯示20個帖子,我不想運行20個查詢來返回評論,我想獲取所有帖子數據和這個查詢中的前3個評論。我想這意味着如果MySQL能夠做到這一點,MySQL會返回一個INSIDE數組。 – user1537360 2013-05-06 15:26:10
對不起,我誤解了這個。我會更新我的答案,但請注意:(a)查詢未經測試;(b)前20條帖子將獲得*全部*評論,因此您必須使用前面 - 結束PHP代碼。 – 2013-05-06 15:34:22
哈哈得承認,這打破了我的頭腦一段時間(我對MySQL很新穎)。想想我的頭腦,但是做了一些調整,並做到了這一點。謝謝! – user1537360 2013-05-06 16:09:10