Verstehen der Einschränkungen von MySQLs FULL JOIN
Im Gegensatz zu einigen anderen relationalen Datenbanken gibt es in MySQL keine direkte Unterstützung für den FULL JOIN-Vorgang . Dies bedeutet, dass das Erreichen des in der Frage genannten gewünschten Ergebnisses einen anderen Ansatz erfordert.
Emulieren eines FULL JOIN in MySQL
Um einen FULL JOIN in MySQL zu emulieren, wird empfohlen Die Problemumgehung umfasst eine Kombination aus LEFT JOIN und RIGHT JOIN. So geht's:
SELECT t_13.value AS val13, t_17.value AS val17 FROM t_13 LEFT JOIN t_17 ON t_13.value = t_17.value UNION ALL SELECT t_13.value AS val13, t_17.value AS val17 FROM t_13 RIGHT JOIN t_17 ON t_13.value = t_17.value WHERE t_13.value IS NULL ORDER BY COALESCE(val13, val17) LIMIT 30;
Diese Abfrage erzeugt effektiv das kartesische Produkt der beiden Tabellen (t_13 und t_17) und filtert dann die Zeilen heraus, in denen beide Werte NULL sind. Das Ergebnis ist eine Tabelle, die alle Zeilen beider Tabellen enthält, auch diejenigen ohne übereinstimmende Werte in der anderen Tabelle, wodurch sichergestellt wird, dass alle möglichen Kombinationen dargestellt werden.
Das obige ist der detaillierte Inhalt vonWie emuliere ich einen FULL JOIN in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!