Left join - Dies ist eine Art von SQL-Verbindungen, die zum Verbinden von Tabellen in einer Oracle-Datenbank verwendet wird. Das Merkmal von left join besteht darin, dass alle Datensätze aus der linken Tabelle (der Tabelle vor dem JOIN-Schlüsselwort) und nur die Datensätze aus der rechten Tabelle (der Tabelle nach dem JOIN-Schlüsselwort) zurückgegeben werden, die die Join-Bedingung erfüllen.
Die Funktionsweise von left join kann wie folgt beschrieben werden: für jeden Datensatz aus der linken Tabelle überprüft der left join die Join-Bedingung für Datensätze aus der rechten Tabelle. Wenn solche Datensätze vorhanden sind, werden sie mit dem entsprechenden Datensatz aus der linken Tabelle zusammengeführt. Wenn keine Datensätze vorhanden sind, wird NULL anstelle von Werten aus der rechten Tabelle zurückgegeben.
Beispiel für die Verwendung von left join in Oracle:SELECT customers.name, orders.order_number
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
In diesem Beispiel wählen wir die Kundennamen aus der Tabelle customers und die Bestellnummern aus der Tabelle orders aus. Mit dem left join verbinden wir diese Tabellen mit dem customer_id-Feld. Das Ergebnis der Abfrage sind alle Datensätze aus der customers-Tabelle, auch wenn sie keine entsprechenden Datensätze in der orders-Tabelle haben.
Grundlagen der Arbeit von left join in Oracle
Der left join-Operator in Oracle wird verwendet, um zwei Tabellen unter bestimmten Bedingungen zu verbinden, und enthält alle Zeilen aus der linken (ersten angegebenen) Tabelle und die entsprechenden Zeilen aus der rechten (zweiten angegebenen) Tabelle. Wenn keine entsprechenden Zeilen in der rechten Tabelle vorhanden sind, wird eine leere Zeile erstellt.
Beachten Sie bei der Verwendung von left join in Oracle die folgenden Grundsätze:
- Die linke Tabelle (die Tabelle, die vor der left join-Anweisung angegeben wurde) muss unbedingt angegeben werden.
- Die rechte Tabelle (die nach der left join-Anweisung angegebene Tabelle) wird möglicherweise nicht angegeben, und in diesem Fall verhält sich der left join-Operator wie ein inner join.
- Die Verbindungs-Bedingung der beiden Tabellen muss nach der on-Anweisung angegeben werden. Mit dieser Bedingung können Sie bestimmen, welche Zeilen aus der rechten Tabelle in das Ergebnis aufgenommen werden sollen.
- Wenn Sie den left join-Operator in Oracle verwenden, wird eine leere Zeile für die rechte Tabelle generiert, wenn die Join-Bedingung nicht erfüllt werden kann.
Beispiel für die Verwendung von left join in Oracle:
SELECT *FROM employeesLEFT JOIN departments ON employees.department_id = departments.department_id;
In diesem Beispiel kombinieren wir die Tabellen employees und departments mit dem Feld department_id. Dadurch werden alle Zeilen aus der employees-Tabelle und die entsprechenden Zeilen aus der departments-Tabelle eingeschlossen. Wenn für einige Mitarbeiter keine Organisationseinheit angegeben ist (d. H. Das Feld department_id ist null), wird eine leere Zeile für die Departments-Tabelle erstellt.
Durch die Verwendung von left Join in Oracle können Sie effizient mit großen Datenmengen arbeiten und komplexe Analyseabfragen durchführen, einschließlich Filtern und Gruppieren von Daten. Der left join-Operator ist ein leistungsfähiges Werkzeug, mit dem Sie vollständige und umfangreiche Daten zur weiteren Analyse und Entscheidungsfindung erhalten können.
Beispiel für die Verwendung von left join in Oracle
Um eine Liste aller Mitarbeiter und Abteilungen mit einem left join zu erhalten, können wir die folgende Abfrage ausführen:
SELECT e.employee_name, d.department_name FROM employees eLEFT JOIN departments d ON e.department_id = d.department_id;
In diesem Beispiel gibt das Schlüsselwort LEFT JOIN an, dass wir alle Zeilen aus der Tabelle employees abrufen müssen, auch wenn keine übereinstimmenden Einträge in der Tabelle departments vorhanden sind. Dies bedeutet, dass der Rückgabewert für department_id NULL ist, wenn der Mitarbeiter keinen department_id-Wert hat oder keinen entsprechenden Eintrag in der departments-Tabelle enthält.
Zum Beispiel, wenn wir die folgenden Daten haben:
Таблица employees:employee_id | employee_name | department_id1 | John | 12 | Sarah | 23 | Mike | NULLТаблица departments:department_id | department_name1 | HR2 | IT
Das Ergebnis unserer Anfrage wird dann sein:
employee_name | department_nameJohn | HRSarah | ITMike | NULL
Beachten Sie, dass der Wert "Mike" in der Spalte department_name NULL ist, da der Mitarbeiter mit der ID 3 keinen department_id-Wert oder einen entsprechenden Eintrag in der Tabelle departments hat. Dies ermöglicht es uns, eine vollständige Liste von Mitarbeitern zu erhalten, einschließlich derjenigen, die keine Abteilung haben.
Wie funktioniert ein left join in Oracle
Angenommen, wir haben zwei Tabellen: employees und departments . Die Tabelle "Mitarbeiter" enthält Informationen zu Mitarbeitern und die Tabelle "Abteilungen" enthält Informationen zu Abteilungen.
CREATE TABLE employees (id NUMBER,name VARCHAR2(50),department_id NUMBER);CREATE TABLE departments (id NUMBER,name VARCHAR2(50));INSERT INTO employees (id, name, department_id)VALUES (1, 'John Doe', 1);INSERT INTO employees (id, name, department_id)VALUES (2, 'Jane Smith', 2);INSERT INTO departments (id, name)VALUES (1, 'Sales');INSERT INTO departments (id, name)VALUES (3, 'Marketing');
Jetzt können wir einen left join durchführen, um eine Liste aller Mitarbeiter zusammen mit den Namen ihrer Abteilungen zu erhalten:
SELECT e.name, d.nameFROM employees eLEFT JOIN departments d ON e.department_id = d.id;
Das Ergebnis wird wie folgt sein:
| name | name |
|---|---|
| John Doe | Sales |
| Jane Smith | null |
In diesem Beispiel haben wir die Tabellen employees und departments mit dem Feld department_id verknüpft. Alle Mitarbeiter aus der Employees-Tabelle wurden in das Ergebnis aufgenommen, und für Mitarbeiter, die keinen übereinstimmenden Datensatz in der departments-Tabelle hatten, wurde der Wert im Feld name der Abteilung durch null ersetzt.
Auf diese Weise können Sie mit einem left Join alle Datensätze aus der linken Tabelle sowie nur übereinstimmende Datensätze aus der rechten Tabelle abrufen.