同じ主キーを持つ 2 つのテーブル (A と B) があります。BではなくAにあるすべての行を選択したい.次の作品:
select * from A where not exists (select * from B where A.pk=B.pk);
ただし、かなり悪いようです(Aの100k行のみで約2秒、Bの3〜10k未満)
これを実行するより良い方法はありますか?おそらく左結合として?
select * from A left join B on A.x=B.y where B.y is null;
私のデータでは、これはわずかに速く (~10%) 実行されるようですが、一般的にはどうでしょうか?