mysql 初级入门狗 被学长们教育了一顿决定写个东西记录一下
select *from a where id in (select id from b);
这么写sql 语法上是没问题的 但是一定会被老大骂死 这么写效率能低还到死 很容易就10几秒才跑完
原因还没研究太明白,不敢乱写 只写几个解决方案吧
1 将语句分成两个来写 把select id from b 单提出来
2 将上述语句改成这样子select *from a where id in (select id from (select id from b) as tbt );
3 直接使用left join select a.* from a left join (select id from b) m on a.id=b.id;
这几种都是解决方案 但是大神们都普遍推荐第一种 而且都希望不用in 后续补充in 效率低得原因到底是啥