Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es einen Grund, warum MySQL keine FULL OUTER JOINS unterstützt?

MySQL fehlen viele Funktionen, die andere Datenbanken haben*. Ich denke, sie haben einen ziemlich großen Rückstand an Ideen und nicht genug Entwickler, um sie alle umzusetzen.

Diese Funktion wurde angefordert im Jahr 2006 und ist immer noch nicht implementiert. Ich denke, es hat eine niedrige Priorität, weil Sie es umgehen können, indem Sie LEFT und RIGHT OUTER JOIN mit einem UNION ALL kombinieren. Nicht angenehm, aber es tut seinen Zweck. Ändern Sie dies:

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.table2_id = table2.id

dazu:

SELECT *
FROM table1
LEFT JOIN table2
ON table1.table2_id = table2.id
UNION ALL
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.table2_id = table2.id
WHERE table1.table2_id IS NULL

* Um fair zu MySQL zu sein, sie haben auch einige Funktionen, die viele andere Datenbanken nicht haben.