Korrelierter Unterabfrage-Ausführungsprozess
Wenn die Ausführung einer Unterabfrage von einer externen Abfrage abhängt, liegt dies normalerweise daran, dass die Tabelle in der Unterabfrage eine externe Tabelle verwendet und eine bedingte Zuordnung durchführt, also bei jeder Ausführung Sowohl die äußere Die Abfrage und die Unterabfrage müssen neu berechnet werden. Solche Unterabfragen werden als korrelierte Unterabfragen bezeichnet. Während jede Zeile der Hauptabfrage ausgeführt wird, werden die korrelierten Unterabfragen in zeilenweiser Reihenfolge ausgeführt.
Anleitung: Verwenden Sie die Spalten in der Hauptabfrage in der Unterabfrage
Titel: Fragen Sie den Nachnamen, das Gehalt und die Abteilungs-ID von Mitarbeitern ab, deren Gehalt über dem Durchschnittsgehalt der Abteilung liegt
Methode 1: Verwandte Unterabfrage
🔜 „virtuelle Tabelle“ verwendet wird.
Titel: Mitarbeiter-ID und Gehalt abfragen, sortiert nach Abteilungsname. Unterabfrage in ORDER BY verwenden:SELECT last_name,salary,e1.department_id FROM employees e1,(SELECT department_id,AVG(salary) dept_avg_sal FROM employees GROUP BY department_id) e2 WHERE e1.`department_id` = e2.department_id AND e2.dept_avg_sal < e1.`salary`;die Bedingung in der Unterabfrage.
Wenn es keine Zeile gibt, die die Bedingung in der Unterabfrage erfüllt:
Die Bedingung gibt FALSE zurück.
Fahren Sie mit der Suche in der Unterabfrage fort.
Fahren Sie nicht fort Suche in der Unterabfrage
Die Bedingung gibt TRUE zurück. Das Schlüsselwort „NOT EXISTS“ bedeutet, dass TRUE zurückgegeben wird, wenn eine bestimmte Bedingung nicht existiert, andernfalls FALSE.
Titel: Fragen Sie die Mitarbeiter-ID, den Nachnamen, die Job-ID und die Abteilungs-ID-Informationen des Unternehmensleiters ab Beurteilung, daher ist die Self-Join-Verarbeitung in den meisten DBMS optimiert.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die MySQL-Unterabfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!