Heim  >  Artikel  >  Datenbank  >  Der Unterschied zwischen Inner Join und Outer Join in Oracle

Der Unterschied zwischen Inner Join und Outer Join in Oracle

下次还敢
下次还敢Original
2024-04-30 07:18:17654Durchsuche

Die Verbindungstypen in Oracle sind in innere Verbindungen und äußere Verbindungen unterteilt. Innere Verknüpfungen geben nur Ergebnisse für übereinstimmende Zeilen zurück, während äußere Verknüpfungen übereinstimmende Zeilen und Zeilen zurückgeben, die nur in einer Tabelle vorkommen. Es gibt drei Arten von Outer-Joins: Left-Outer-Join (gibt alle Zeilen der linken Tabelle zurück), Right-Outer-Join (gibt alle Zeilen der rechten Tabelle zurück) und Full-Outer-Join (gibt alle Zeilen von beiden Seiten der Tabelle zurück). Das Merkmal der inneren Verknüpfung besteht darin, Zeilen abzugleichen. Die linke äußere Verknüpfung verwendet NULL, um die Nullwerte der rechten Tabelle zu füllen, die rechte äußere Verknüpfung verwendet NULL, um die Nullwerte der linken Tabelle zu füllen, und die vollständige äußere Verknüpfung verwendet NULL Füllen Sie die Nullwerte auf beiden Seiten der Tabelle aus.

Der Unterschied zwischen Inner Join und Outer Join in Oracle

Der Unterschied zwischen Inner Joins und Outer Joins in Oracle

Definition:

  • Inner JOIN (INNER JOIN): Gibt nur die Daten aller übereinstimmenden Zeilen in zwei oder mehr Tabellen zurück.
  • Outer Join: Gibt Daten aus allen übereinstimmenden Zeilen in zwei oder mehr Tabellen zurück, sowie aus Zeilen, die nur in einer Tabelle vorhanden sind.

Typ:

Es gibt drei Arten von Outer-Joins:

  • LEFT OUTER JOIN (LEFT OUTER JOIN): Gibt alle Zeilen in der linken Tabelle und die entsprechenden Zeilen in der rechten Tabelle zurück.
  • RIGHT OUTER JOIN: Gibt alle Zeilen in der rechten Tabelle und passende Zeilen in der linken Tabelle zurück.
  • FULL OUTER JOIN: Gibt Zeilen aus zwei Tabellen zurück, auch wenn zwischen den Zeilen keine Übereinstimmung besteht.

Unterschied:

Eigenschaften Innere Verbindung Linke äußere Verbindung Rechte äußere Verbindung Volle äußere Verbindung
Übereinstimmung Prinzip Nur Übereinstimmung mit Zeile Linke Tabelle Übereinstimmung Rechte Tabellenübereinstimmung Beide Seitentabellenübereinstimmung
Zeile zurückgeben Zeile abgleichen Alle Zeilen der linken Tabelle Alle Zeilen der rechten Tabelle Alle Zeilen der beiden Seitentabellen
Nullwertverarbeitung Nur übereinstimmende Zeilen anzeigen Füllen Sie die leeren Werte der rechten Tabelle mit NULL Füllen Sie die leeren Werte der linken Tabelle mit NULL Füllen Sie die leeren Werte der linken Tabelle mit NULL

Beispiel:

Angenommen, es gibt zwei Tabellen:

  • Tabelle A: id, nameid, name
  • 表 Bid, address

内连接:

<code>SELECT *
FROM A
INNER JOIN B
ON A.id = B.id;</code>

返回:仅具有匹配 id 的行。

左外连接:

<code>SELECT *
FROM A
LEFT OUTER JOIN B
ON A.id = B.id;</code>

返回:所有来自表 A 的行,以及具有匹配 id

Tabelle B: id , address

Inner Join:

<code>SELECT customers.name, orders.order_date, products.product_name
FROM customers
LEFT OUTER JOIN orders
ON customers.id = orders.customer_id
LEFT OUTER JOIN products
ON orders.product_id = products.id;</code>
🎜🎜Rückgabe: 🎜Nur Zeilen mit passender id. 🎜🎜🎜Linker äußerer Join: 🎜🎜rrreee🎜🎜Rückgabe: 🎜Alle Zeilen aus Tabelle A und Zeilen aus Tabelle B mit passender id (falls vorhanden). Nicht übereinstimmende Zeilen werden mit NULL gefüllt. 🎜🎜🎜Beispielabfrage: 🎜🎜🎜Die folgende Abfrage verknüpft Daten aus zwei Tabellen mithilfe eines linken äußeren Joins und zeigt alle Kunden und ihre Adressen an: 🎜rrreee🎜Durch das Verständnis des Unterschieds zwischen inneren Verknüpfungen und äußeren Verknüpfungen können Entwickler diese Verbindungen verwenden effektiv Daten aus verschiedenen Tabellen extrahieren und spezifische Datenabfrageanforderungen erfüllen. 🎜

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Inner Join und Outer Join in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn