【发布时间】:2015-06-14 14:40:57
【问题描述】:
这两个mysql查询有什么区别
select t.id,
(select count(c.id) from comment c where c.topic_id = t.id) as comments_count
from topic;
与
select t.id,comments.count from topic
left join
(
select count(c.id) count,c.topic_id from comment c group by topic_id
) as comments on t.id = comments.topic_id
我知道没有太多信息。只是想知道何时使用子查询和连接子查询以及它们之间的区别。
谢谢
【问题讨论】:
-
您的第二个示例是连接到派生表。好处是派生表生成一次,基于集合。第一个相关子查询有可能在
topic表的每一行中执行一次 -
所以你的意思是子查询可以检索单条记录?第二个用于检索列表?
-
@reverbnation 如果你想向 StuartLC 提问,你应该打电话给他
@