MySQL JOIN ohne ON-Bedingung: Cross- und Inner-Joins verstehen
Während die meisten Datenbanksysteme eine ON-Klausel für JOIN-Operationen erfordern, bietet MySQL eine einzigartige Funktion, die es in bestimmten Szenarien ermöglicht, sie wegzulassen. Join und Inner Join in MySQL können ohne eine ON-Bedingung ausgeführt werden, was zu einem Cross Join führt.
Cross Join: Ein kartesisches Produkt
Ein Cross Join, sofern nicht vorhanden der ON-Klausel generiert ein kartesisches Produkt von Daten aus mehreren Tabellen. Das bedeutet, dass jede Zeile aus der ersten Tabelle mit jeder Zeile aus der zweiten Tabelle gepaart wird, wodurch eine deutlich größere Ergebnismenge entsteht.
Inner Join ohne ON-Klausel
Ähnlich gilt: Bei Verwendung eines Inner Joins ohne ON-Klausel verhält sich MySQL anders als der ANSI-Standard. Das Ergebnis ist dasselbe wie bei einem Cross-Join, bei dem alle Filter- oder Übereinstimmungskriterien effektiv entfernt werden.
Anwendungsfälle
Cross-Joins können in bestimmten Situationen nützlich sein:
Empfohlene Vorgehensweise
Während MySQL Join-Abfragen ohne eine ON-Bedingung zulässt, Im Allgemeinen wird empfohlen, Cross Join explizit wie folgt zu verwenden:
SELECT * FROM table1 CROSS JOIN table2
Dieser Ansatz ist expliziter und vermeidet Verwechslungen mit Inner Joins.
Right Join und Left Join
Right und Left Outer Joins erfordern eine ON-Klausel, um die Übereinstimmungsbedingung anzugeben. Daher gilt die Diskussion über Verknüpfungen ohne ON-Bedingung nicht für diese Verknüpfungstypen.
Das obige ist der detaillierte Inhalt vonKönnen MySQL JOINs ohne eine ON-Klausel funktionieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!