Heim >Datenbank >MySQL-Tutorial >Analyse von MINUS, INTERSECT und UNION ALL von SQL-Anweisungen
Drei Schlüsselwörter in der SQL-Anweisung: MINUS (Subtraktion), INTERSECT (Schnittpunkt) und UNION ALL (Vereinigung);
Jeder sollte das Konzept von Mengen in der Mittelschule gelernt haben, daher werde ich nicht auf Details eingehen. Diese drei Schlüsselwörter werden hauptsächlich zur Bearbeitung der Abfrageergebnisse der Datenbank verwendet, genau wie ihre chinesische Bedeutung: zwei Abfragen, MINUS dient dazu, das zweite Abfrageergebnis vom ersten Abfrageergebnis zu subtrahieren. Wenn es einen Schnittpunkt gibt, subtrahieren Sie den Schnittpunkt; andernfalls gibt es keinen Unterschied zum ersten Abfrageergebnis zwei Die Schnittmenge der Abfrageergebnisse, UNION ALL ist die Vereinigung zweier Abfragen
Obwohl die Funktion gleich ist Es kann mit einfachen SQL-Anweisungen implementiert werden, aber der Leistungsunterschied ist sehr groß: made_order hat insgesamt 230.000 Datensätze, charge_detail hat insgesamt 170.000 Datensätze:
Der Leistungsunterschied ist 15,956 Mal! Unternehmen, der Datenbankserver wird von uns nicht zu Tode geprügelt?SELECT order_id FROM made_order MINUS SELECT order_id FROM charge_detail 耗时:1.14 sec SELECT a.order_id FROM made_order a WHERE a.order_id NOT exists ( SELECT order_id FROM charge_detail WHERE order_id = a.order_id ) 耗时:18.19 sec
PS: Bei der Anwendung der Subtraktion, Schnittmenge und Addition zweier Mengen gelten strenge Anforderungen: 1. Die Felder der beiden Mengen muss klar sein (die Verwendung von * funktioniert nicht, es wird ein Fehler gemeldet); 2. Feldtyp Das Gleiche wie die Reihenfolge (die Namen können unterschiedlich sein), zum Beispiel: Feld 1 von Satz 1 ist NUMBER, Feld 2 ist VARCHAR, Dann muss Feld 1 von Satz 2 ebenfalls NUMBER sein und Feld 2 muss VARCHAR 3 sein. Wenn Sie die Ergebnisse sortieren möchten, können Sie nach der Mengenoperation eine weitere Abfrage hinzufügen und dann sortieren. Das vorherige Beispiel kann geändert werden in:
Das obige ist der detaillierte Inhalt vonAnalyse von MINUS, INTERSECT und UNION ALL von SQL-Anweisungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!