【发布时间】:2015-07-07 14:41:18
【问题描述】:
我在下面有两个问题。第一个有一个嵌套选择。第二个使用 group by 子句。
select
posts.*,
(select count(*) from comments where comments.post_id = posts.id and comments.is_approved = 1) as comments_count
from
posts
select
posts.*,
count(comments.id) comments_count
from
posts
left join comments on
comments.post_id = posts.id
group by
posts.*
据我了解,第一个查询更糟糕,因为它必须对帖子中的每条记录进行选择,而第二个查询则没有。
这是真的还是假的?
【问题讨论】:
-
第二个根本不行,你需要加入
comments到posts。此外,我从来没有这样分组,所以我不能确定,但即使它是合法的语法,你的GROUP BY也会同样有效,而且可能更快,如果你只是做了GROUP BY posts.post_id。此外,一旦正确编写,我希望后者更快。 -
谢谢...对不起,我错过了包括左连接,已编辑以包含它。
标签: mysql