SQLクエリー-別のテーブルにないテーブルがあるデータ

1762 ワード

A、Bの2つのテーブルは、IDフィールドにAテーブルが存在するが、Bテーブルのデータは存在しないことを探し出す.A表は全部で13 wのデータで、重さを除いて約3 Wのデータで、B表は2 Wのデータで、B表のIDフィールドはインデックスがあります.
方法1
not inを使用すると分かりやすく、効率が低い~実行時間:1.395秒~
select distinct A.ID from A where A.ID not in (select ID from B)

方法2
left joinを使用...on... , 「B.ID isnull」は、左接続後のB.IDフィールドがnullのレコード~実行時間:0.739秒~
select A.ID from A left join B on A.ID=B.ID where B.ID is null

方法3
論理は比較的複雑であるが、速度が最も速い~実行時間:0.570秒~
select * from B where (select count(1) as num from A where A.ID = B.ID) = 0

 
転載先:https://www.cnblogs.com/yifanSJ/p/9170617.html