Ich habe 2 Tabellen, OrderData und StagingOrderData. Ich muss sehen, ob es Zeilen in den StagingOrderData gibt, die in der OrderData vorhanden sind, so dass ich sie vor dem Import aus der StagingOrderData-Tabelle löschen kann.Welche SQL-Anweisung ist effizienter Joins oder existiert
Testfälle - Ich habe versucht, ein
beitretenselect * from
dbo.stagingOrderData s
inner join dbo.OrderData o
on s.productid = o.productid
and s.barcode = o.barcode
and s.orderid = o.orderid
und dann und „existiert“
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)
Die Aussage mit dem „existiert“ scheint viel schneller zu sein.
Duplizieren - siehe diese Frage hier zum Beispiel: http://stackoverflow.com/questions/227037/can-i-get-better-performance-using-a-join-or-using-exists –