SQL - Gibt es eine entgegengesetzte, aber äquivalente UNION-Funktion?

8

Gibt es eine entgegengesetzte, aber äquivalente UNION-Funktion für mysql?

Ich weiß, dass dies mit einer längeren Abfrage möglich ist, aber ich bin neugierig, ob es eine äquivalente Funktion gibt oder nicht.

Ich habe 2 Select-Anweisungen für zwei verschiedene Tabellen

%Vor%

Und ich brauche eine Abfrage, die nur von table1 und NUR wenn idname, Telefon, Handy, home von table1 nicht mit table2

übereinstimmt

Zum Beispiel: Tabelle1 hat

%Vor%

aber Tabelle 2 hat:

%Vor%

Die Abfrage zeigt

an %Vor%

wird NICHT angezeigt

%Vor%     
Tonya S 27.09.2012, 18:20
quelle

2 Antworten

19

In Standard-SQL können Sie den Operator ANSI SQL EXCEPT verwenden, der ein exaktes Analogon zu UNION

ist %Vor%

Es gibt auch einen INTERSECT Operator setzen , der Zeilen anzeigen würde, die beide Quellen gemeinsam haben .

Leider werden beide in den aktuellen Versionen von MySQL nicht unterstützt. Sie müssen also eine dieser drei ausführlicheren Methoden verwenden, um einen Anti-Semi-Join zu erreichen.

NOT IN vs. NOT EXISTS vs. LEFT JOIN / IST NULL

    
Martin Smith 27.09.2012, 18:23
quelle
4

Wenn Sie Oracle verwenden, verwenden Sie die Klausel MINUS .

%Vor%

oder

%Vor%     
dispake 27.09.2012 18:23
quelle

Tags und Links