639 Stimmen

NOT IN vs. NOT EXISTS

Welche dieser Abfragen ist die schnellere?

NICHT EXISTIERT:

SELECT ProductID, ProductName 
FROM Northwind..Products p
WHERE NOT EXISTS (
    SELECT 1 
    FROM Northwind..[Order Details] od 
    WHERE p.ProductId = od.ProductId)

Oder NICHT IN:

SELECT ProductID, ProductName 
FROM Northwind..Products p
WHERE p.ProductID NOT IN (
    SELECT ProductID 
    FROM Northwind..[Order Details])

Der Ausführungsplan der Abfrage besagt, dass beide das Gleiche tun. Wenn das der Fall ist, welche Form ist dann die empfohlene?

Grundlage hierfür ist die NorthWind-Datenbank.

[Bearbeiten]

Ich habe gerade diesen hilfreichen Artikel gefunden: http://weblogs.sqlteam.com/mladenp/archive/2007/05/18/60210.aspx

Ich glaube, ich bleibe bei NOT EXISTS.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X