我有2個表,orderData和stagingOrderData。我需要查看stagingOrderData中是否存在任何存在於orderData中的行,以便在導入之前從stagingOrderData表中刪除它們。哪個SQL語句更有效連接或存在
測試案例 - 我嘗試了加入
select * from
dbo.stagingOrderData s
inner join dbo.OrderData o
on s.productid = o.productid
and s.barcode = o.barcode
and s.orderid = o.orderid
,然後和「存在」
select * from
dbo.stagingOrderData s
where exists(dbo.OrderData o
select * from
where o.productid = s.productid
and o.barcode = s.barcode
and o.orderid = s.orderid)
聲明與「存在」,似乎要快得多。
重複 - 在這裏看到這個問題,例如:http://stackoverflow.com/questions/227037/can-i-get-better-performance-using-a-join-or-using-exists – 2009-08-13 19:47:42