Der SQL MINUS Operator entfernt alle Ergebnisse von der ersten Abfrage, die auch in der zweiten Abfrage existieren.

[Abfrage1] 
MINUS 
[Abfrage2]; 
SQL MINUS

SQL MINUS - Beispiel

Der Geschäftsführer eines Mode-Onlineshops möchte überprüfen, welche Kleidungsstücke nicht verkauft werden. Seine Datenbank enthält die Tabellen „Lagerbestand“ und „Bestellungen“. Alle Kleidungsstücke, die im Lagerbestand vorhanden sind, aber nicht unter Bestellungen aufgelistet sind, wurden nicht verkauft:

SELECT Kleidung_ID, Bezeichnung FROM Lagerbestand
MINUS
SELECT Kleidung_ID, Bezeichnung FROM Bestellungen; 

SQL MINUS in MySQL

Leider existiert der MINUS Operator nicht in MySQL. Trotzdem kann man denselben Effekt mit den Operatoren NOT IN und einer Subquery simulieren:

SELECT Spalte 
FROM Tabelle1
WHERE Spalte NOT IN(SELECT Spalte FROM Tabelle2); 

Bei mehreren Spalten fügen wir einfach mehrere Subqueries ein. Wir könne das obige Beispiel mit dem Mode-Onlineshop mit diesem Lösungsweg also auch nachstellen:

SELECT Kleidung_ID, Bezeichnung 
FROM Lagerbestand
WHERE Kleidung_ID NOT IN (SELECT Kleidung_ID FROM Bestellungen)
AND Bezeichnung NOT IN (SELECT Bezeichnung FROM Bestellungen) 

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!