从表中选择行,其中连接表具有多于X个条目

时间:2013-06-05 19:17:15

标签: mysql foreign-keys

我有以下表格:

posts
post_id | user_id | text
1       | 12      | blabla
2       | 64      | sususus

comments
comment_id | post_id | user_id | text
1          | 1       | 55      | I like this...
2          | 2       | 66      | Yeah, me also!
...

现在帖子和评论通过post_id id连接。如何获得少于18条评论的所有帖子?

1 个答案:

答案 0 :(得分:0)

SELECT p.* 
FROM posts p 
LEFT JOIN (
    SELECT post_id, COUNT(*) AS total 
    FROM comments 
    GROUP BY post_id
    ) p2 
ON p.post_id = p2.post_id 
WHERE p2.total < 18 OR p2.total IS NULL

在这里,您使用子查询来获取所有post_id以及每篇帖子的评论数量。然后,使用LEFT JOIN将其连接到posts表格,这样您的结果就会包含没有评论的帖子。