我希望每个类别最多显示3个帖子。另外我想检查每个类别至少有3个帖子(得到帖子数)。请参阅下面的表担架
类别表
+---------+---------------+
| cat_id | cat_name |
+---------+---------------+
| 1 | cat name 1 |
| 2 | cat name 2 |
| 3 | cat name 3 |
+---------+---------------+
帖子表
+------+--------+-------+
| p_id | post | c_id |
+------+--------+-------+
| 1 | post 1 | 1 |
| 2 | post 2 | 1 |
| 3 | post 3 | 2 |
| 4 | post 1 | 2 |
| 5 | post 2 | 1 |
| 6 | post 3 | 3 |
| 6 | post 3 | 1 |
+------+--------+-------+
查询
if($results=$mysqli->query( SELECT * FROM categories LEFT JOIN posts ON posts.p_id= categories.cat_id WHERE posts.p_id= categories.cat_id ORDER BY cat_id LIMIT 0, 10")){
while($row = mysqli_fecth_array($results)){
//Do stuff
}
$results ->close();
}
赞赏任何示例或评论。
答案 0 :(得分:1)
在MySQL和理智的查询中,不可能从每个类别获得最多3个帖子。你需要支持窗口函数。我会为每个类别预先形成一个单独的查询。您可以在此标记中阅读简短信息:https://stackoverflow.com/tags/window-functions/info
第二部分:
SELECT c_id, COUNT(*) FROM posts GROUP BY c_id;
答案 1 :(得分:0)
从c.cat_id = c.cat_id组中的帖子c内部联接类别中选择distinct(c.postid),c.postname,s.category_name c.cat_id具有COUNT(c.cat_id)> 3限制3