Das Wort JOIN ist jedem geläufig, der schon einmal mit Datenbanken zu tun hatte. Viele Leute kennen verschiedene JOINs, aber viele haben kein umfassendes Verständnis davon. TABELLE_A | TABELLE_B PK-Wert | PK-Wert ---- ---------- | ---- ---------- 1 FUCHS | 1 TRAB 2 Polizisten | 2 Autos 3 TAXI | 3 CAB 6 WASHINGTON | 6 DENKMAL 7 DELL | 7 PC 5 ARIZONA | 8 MICROSOFT 4 LINCOLN | 9 APFEL 10 LUCENT | 11 SCOTCH Join-Syntax:Tabelle verbinden: table_reference JOIN table_factor [join_condition] //Innerer Join | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition //Äußerer Join | table_reference LEFT SEMI JOIN table_reference join_condition //Linker Semi-Join | table_reference CROSS JOIN table_reference [join_condition] (Stand Hive 0.10) Tabellenreferenz: table_factor //Tabelle | join_table //Join-Anweisung table_factor: tbl_name [Alias] //Tabellenname [Alias] | table_subquery alias //Unterabfrage [Alias] | (table_references) // table_reference mit Leerzeichen Beitrittsbedingung: ON-Ausdruck //bedingte Anweisung, die mit on beginnt 1. Innerer JOIN: (Innerer Join)Dies ist die einfachste und am leichtesten verständliche und auch die am häufigsten vorkommende Verbindung. Diese Abfrage gibt alle Datensätze in der linken Tabelle (Tabelle A) zurück, die einen entsprechenden Datensatz in der rechten Tabelle (Tabelle B) haben. Dieser Zusammenhang wird wie folgt geschrieben: SELECT <Auswahlliste> VON Tabelle_A A INNER JOIN Tabelle_B B EIN A.Taste = B.Taste -- Innerer JOIN WÄHLEN SIE A.PK ALS A_PK, A.Wert ALS A_Wert, B.Wert als B_Wert, B.PK als B_PK VON Tabelle_A A INNER JOIN Tabelle_B B EIN A.PK = B.PK A_PK A_Wert B_Wert B_PK ---- ---------- ---------- ---- 1 FOXTROTT 1 2 Polizistenwagen 2 3 TAXI 3 6 WASHINGTON DENKMAL 6 7 Dell-PC 7 (5 Zeile(n) betroffen) 2. Linker JOIN: (Linker Join)Diese Abfrage gibt alle Datensätze aus der linken Tabelle (Tabelle A) zurück, unabhängig davon, ob sie mit Datensätzen in der rechten Tabelle (Tabelle B) übereinstimmen. Außerdem werden alle übereinstimmenden Datensätze aus der richtigen Tabelle zurückgegeben. Dieser Zusammenhang wird wie folgt geschrieben: SELECT <Auswahlliste> VON Tabelle_A A LEFT JOIN Tabelle_B B EIN A.Taste = B.Taste -- Linker JOIN WÄHLEN SIE A.PK ALS A_PK, A.Wert ALS A_Wert, B.Wert als B_Wert, B.PK als B_PK VON Tabelle_A A LEFT JOIN Tabelle_B B EIN A.PK = B.PK A_PK A_Wert B_Wert B_PK ---- ---------- ---------- ---- 1 FOXTROTT 1 2 Polizistenwagen 2 3 TAXI 3 4 LINCOLN NULL NULL 5 ARIZONA NULL NULL 6 WASHINGTON DENKMAL 6 7 Dell-PC 7 10 LICHT NULL NULL (8 Zeile(n) betroffen) 3. Left Excluding JOIN: (Linker Join schließt innere Join-Ergebnisse aus) Diese Abfrage gibt alle Datensätze aus der linken Tabelle (Tabelle A) zurück, die mit keinem Datensatz in der rechten Tabelle (Tabelle B) übereinstimmen. Dieser Zusammenhang wird wie folgt geschrieben: SELECT <Auswahlliste> VON Tabelle_A A LEFT JOIN Tabelle_B B EIN A.Taste = B.Taste Wobei B.Key NULL ist -- Links ohne JOIN WÄHLEN SIE A.PK ALS A_PK, A.Wert ALS A_Wert, B.Wert als B_Wert, B.PK als B_PK VON Tabelle_A A LEFT JOIN Tabelle_B B EIN A.PK = B.PK Wobei B.PK NULL ist A_PK A_Wert B_Wert B_PK ---- ---------- ---------- ---- 4 LINCOLN NULL NULL 5 ARIZONA NULL NULL 10 LICHT NULL NULL (3 Zeile(n) betroffen) 4. Right JOIN: (Rechtsverbindung)Diese Abfrage gibt alle Datensätze aus der rechten Tabelle (Tabelle B) zurück, unabhängig davon, ob diese Datensätze mit Datensätzen in der linken Tabelle (Tabelle A) übereinstimmen. Es werden auch alle übereinstimmenden Datensätze aus der linken Tabelle zurückgegeben. Dieser Zusammenhang wird wie folgt geschrieben: SELECT <Auswahlliste> VON Tabelle_A A RIGHT JOIN Tabelle_B B EIN A.Taste = B.Taste --Rechts JOIN WÄHLEN SIE A.PK ALS A_PK, A.Wert ALS A_Wert, B.Wert als B_Wert, B.PK als B_PK VON Tabelle_A A RIGHT JOIN Tabelle_B B EIN A.PK = B.PK A_PK A_Wert B_Wert B_PK ---- ---------- ---------- ---- 1 FOXTROTT 1 2 Polizistenwagen 2 3 TAXI 3 6 WASHINGTON DENKMAL 6 7 Dell-PC 7 NULL NULL MICROSOFT 8 NULL NULL APPLE 9 NULL NULL SCOTCH 11 (8 Zeile(n) betroffen) 5. Right Excluding JOIN: (Rechter Join schließt innere Join-Ergebnisse aus)Diese Abfrage gibt alle Datensätze aus der rechten Tabelle (Tabelle B) zurück, die mit keinem Datensatz in der linken Tabelle (Tabelle A) übereinstimmen. Dieser Zusammenhang wird wie folgt geschrieben: SELECT <Auswahlliste> VON Tabelle_A A RIGHT JOIN Tabelle_B B EIN A.Taste = B.Taste Wobei A.Key NULL ist -- Rechts ausschließend JOIN WÄHLEN SIE A.PK ALS A_PK, A.Wert ALS A_Wert, B.Wert als B_Wert, B.PK als B_PK VON Tabelle_A A RIGHT JOIN Tabelle_B B EIN A.PK = B.PK Wobei A.PK NULL ist A_PK A_Wert B_Wert B_PK ---- ---------- ---------- ---- NULL NULL MICROSOFT 8 NULL NULL APPLE 9 NULL NULL SCOTCH 11 (3 Zeile(n) betroffen) 6. Äußerer JOIN: (Äußerer Join)Dieser Join kann auch als vollständiger äußerer Join oder vollständiger Join bezeichnet werden. Diese Abfrage gibt alle Datensätze aus beiden Tabellen zurück und verbindet die Datensätze in der linken Tabelle (Tabelle A), die mit den Datensätzen in der rechten Tabelle (Tabelle B) übereinstimmen. Dieser Zusammenhang wird wie folgt geschrieben: SELECT <Auswahlliste> VON Tabelle_A A VOLLSTÄNDIGER OUTER JOIN Tabelle_B B EIN A.Taste = B.Taste -- Äußerer JOIN WÄHLEN SIE A.PK ALS A_PK, A.Wert ALS A_Wert, B.Wert als B_Wert, B.PK als B_PK VON Tabelle_A A VOLLSTÄNDIGER OUTER JOIN Tabelle_B B EIN A.PK = B.PK A_PK A_Wert B_Wert B_PK ---- ---------- ---------- ---- 1 FOXTROTT 1 2 Polizistenwagen 2 3 TAXI 3 6 WASHINGTON DENKMAL 6 7 Dell-PC 7 NULL NULL MICROSOFT 8 NULL NULL APPLE 9 NULL NULL SCOTCH 11 5 ARIZONA NULL NULL 4 LINCOLN NULL NULL 10 LICHT NULL NULL (11 Zeile(n) betroffen) 7. Outer Excluding JOIN: (Äußerer Join schließt innere Join-Ergebnisse aus)Diese Abfrage gibt alle Datensätze aus der linken Tabelle (Tabelle A) und alle Datensätze aus der rechten Tabelle (Tabelle B) zurück, die keine Übereinstimmung aufweisen. Diesen Verknüpfungstyp musste ich bisher noch nicht verwenden, alle anderen Verknüpfungstypen verwende ich jedoch ziemlich häufig. Dieser Zusammenhang wird wie folgt geschrieben: SELECT <Auswahlliste> VON Tabelle_A A VOLLSTÄNDIGER OUTER JOIN Tabelle_B B EIN A.Taste = B.Taste Wobei A.Key NULL oder B.Key NULL ist - Äußerer Ausschluss-JOIN WÄHLEN SIE A.PK ALS A_PK, A.Wert ALS A_Wert, B.Wert als B_Wert, B.PK als B_PK VON Tabelle_A A VOLLSTÄNDIGER OUTER JOIN Tabelle_B B EIN A.PK = B.PK Wobei A.PK NULL ist ODER B.PK IST NULL A_PK A_Wert B_Wert B_PK ---- ---------- ---------- ---- NULL NULL MICROSOFT 8 NULL NULL APPLE 9 NULL NULL SCOTCH 11 5 ARIZONA NULL NULL 4 LINCOLN NULL NULL 10 LICHT NULL NULL (6 Zeile(n) betroffen) Beachten Sie, dass bei einem äußeren Join zuerst die inneren Join-Datensätze zurückgegeben werden, gefolgt von den rechten Join-Datensätzen und schließlich den linken Join-Datensätzen (zumindest macht das mein Microsoft SQL Server so; natürlich ist hierfür die Verwendung von ORDER BY-Anweisungen nicht erforderlich). Für weitere Informationen können Sie den Wikipedia-Artikel besuchen (der Eintrag ist jedoch nicht grafisch). Ich habe auch einen Spickzettel erstellt, den Sie bei Bedarf ausdrucken können. Wenn Sie mit der rechten Maustaste auf das Bild unten klicken und „Ziel speichern unter ...“ auswählen, wird das Bild in voller Größe heruntergeladen. Dies ist das Ende dieses Artikels über die spezifische Verwendung von MySQL-Joins. Weitere relevante Verwendungen von MySQL-Joins finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Vier Möglichkeiten, CSS und HTML zu kombinieren
>>: So bedienen Sie Docker und Images
Inhaltsverzeichnis Die erste Methode: Wenn die My...
Ich glaube, dass viele Partner, die gerade erst m...
500 (Interner Serverfehler) Auf dem Server ist ei...
<br />Ich habe festgestellt, dass viele Leut...
Klassifizierung von CSS-Stilen 1. Interner Stil -...
Nachfragehintergrund In letzter Zeit plane ich, V...
Als wir nginx eingeführt haben, haben wir nginx a...
Bei der tatsächlichen Arbeit oder bei Interviews ...
Inhaltsverzeichnis 1. Einfache SELECT-Anweisung 1...
Inhaltsverzeichnis Was ist wartbarer Code? Code-K...
IP-Masquerading und Port-Weiterleitung Firewalld ...
Lassen Sie uns die Funktion von Taobao nachahmen,...
Inhaltsverzeichnis 1. v-on-Richtlinie 1. Grundleg...
Detaillierte Erläuterung der Reihenfolge der MySQ...
1. Fehler beim Verbinden mit Master 'x@xxxx:x...