1. 程式人生 > >用join取代not in

用join取代not in

select ble 最好 和數 使用 很多 blog log not in

寫了好幾個頁面,速度都上不去,瓶頸在於SQL查詢。太多的表,太多的not in,總是從一大推表和數據中篩選出一點數據。看了很多關於SQL優化的文章,都強烈要求不要太多使用not in查詢,最好用表連接來取代它。如:

select ID,name from Table_A where ID not in (select ID from Table_B)

這句是最經典的not in查詢了。改為表連接代碼如下:

select Table_A.ID,Table_A.name from Table_A left join Table_B on Table_A.ID=Table_B.ID and Table_B.ID is null
或者:
select Table_A.ID,Table_A.name from Table_A left join Table_B on Table_A.ID=Table_B.ID where Table_B.ID is null

經試用,效果立竿見影。

用join取代not in