FULL OUTER JOIN mit MySQL

MySql unterstützt kein  FULL OUTER JOIN. Um dennoch so eine Abfrage zu erzeugen muss man einfach einen LEFT JOIN und einen RIGHT JOIN per UNION  verbinden.

Um doppelte Datensätze nicht zu löschen, wird für die Verknüpfung  UNION ALL  verwendet. Es werden in der RIGHT JOIN-Abfrage nur noch die Datensätze ohne Gegenpart, aus der LEFT JOIN-Abfrage, der ersten Tabelle benötigt.

    SELECT t1.*
        , t2.*
     FROM tabelle1 AS t1
LEFT JOIN tabelle2 AS t2
       ON t1.feld1 = t2.feld1
    UNION ALL
   SELECT t1.*
        , t2.*
     FROM tabelle1 AS t1
RIGHT JOIN tabelle2 AS t2
        ON t1.feld1 =  t2.feld1
    WHERE t1.feld1 IS NULL

Aktualisiert am

Abgelegt unter: MySQL