select c1,(select c2 from b where b.id = a.id) from a
select c1,c2 from a left join b on a.id = b.id
b.id建有聚合索引,请问,以上两种查询哪个效率更高,更快?
------解决思路----------------------
第一种是子查询,
第二种是join方式,
一般来说,第二种join的方式效率会更高,不过这个还得看具体的执行计划
你把两个语句放一起,执行后,看执行计划,会有百分比,一看就知道那个效率高,如果都是50%,说明效率是一样的
------解决思路----------------------
感觉这2个语句只有在表A和表B是1对1的关系的时候结果才是一样的。如果1对多 第一个语句报错吧。子查询返回多个值。
不按照顺序排列比较正常吧。他扫描聚集索引之后还和表B进行ID上的匹配啊。
感觉不按照C1顺序比较正常啊
------解决思路----------------------
这个不一定的,如果你要按照c1字段排序,那么必须使用order by 子句来指定