Ja, Oracle unterstützt den Befehl "Inner Join". Es wird wie in anderen SQL -Datenbanken verwendet, um Zeilen aus zwei oder mehr Tabellen zu kombinieren, die auf einer zugehörigen Spalte zwischen ihnen basieren. In beiden Tabellen sind nur Zeilen mit passenden Werten enthalten.
Hier ist die grundlegende Syntax:
`` `SQL
Wählen Sie column_name (s)
Aus Tabelle 1
Innere Join Tabelle 2 in Tabelle 1.Column_Name =table2.Column_name;
`` `
Sie können auch die ältere, ausführlichere "Join" -Syntax verwenden, die dem "inneren Join" funktional entspricht:
`` `SQL
Wählen Sie column_name (s)
Aus Tabelle 1, Tabelle 2
Wobei Tabelle 1.Column_Name =table2.Column_name;
`` `
Während dies funktioniert, wird die "innere Join" -Syntax für Lesbarkeit und Klarheit bevorzugt, insbesondere in komplexen Abfragen, die mehrere Verknüpfungen beinhalten. Das Schlüsselwort "Join" wird in modernen SQL -Codierungspraktiken im Allgemeinen vermieden.
Beispiel:
Angenommen, Sie haben zwei Tabellen:"Mitarbeiter" und "Abteilungen".
Mitarbeiter Tabelle:
| Mitarbeiter_id | Name | Abteilung_ID |
| ------------- | ----------- | ---------------- |
| 1 | John Doe | 10 |
| 2 | Jane Doe | 20 |
| 3 | David Lee | 10 |
Abteilungstabelle:
| Abteilung_ID | Name |
| -------------- | -------------- |
| 10 | Verkauf |
| 20 | Marketing |
| 30 | Engineering |
Eine "innere Join" -Anfrage zum Abrufen von Mitarbeiternamen und ihre Abteilungsnamen würde so aussehen:
`` `SQL
Wählen Sie Mitarbeiter aus. Name, Abteilungen.name
Von Mitarbeitern
Innere Abteilungen über Mitarbeiter.
`` `
Dies würde zurückkehren:
| Name | Name |
| ----------- | -------------- |
| John Doe | Verkauf |
| Jane Doe | Marketing |
| David Lee | Verkauf |
Nur Mitarbeiter, die in beiden Tabellen übereinstimmen, sind im Ergebnis enthalten. Mitarbeiter, die einer Abteilung in der Tabelle "Abteilungen" nicht zugeordnet sind, oder Abteilungen ohne Mitarbeiter in der Tabelle "Mitarbeiter" würden nicht berücksichtigt.