sql子查询

1 什么是子查询

将一个子查询的结果拥有查询条件中。

2 子查询存在的问题

需要为子查询的结果创建一个临时表,耗内存并且费时。

连接不需要创建临时表,它的操作直接在原表或者原表的索引上进行。

一般情况下可以用连接代替子查询。

SELECT * FROM t1
WHERE t1.a1 NOT in (SELECT a2 FROM t2 )
优化后:
SELECT * FROM t1
LEFT JOIN t2 ON t1.a1=t2.a2
WHERE t2.a2 IS NULL  
posted @ 2018-04-22 16:07  PhoenixTree(梧桐树)  阅读(218)  评论(0编辑  收藏  举报