sql >> Databáze >  >> RDS >> Mysql

Existuje důvod, proč MySQL nepodporuje FULL OUTER JOINS?

MySQL postrádá mnoho funkcí, které mají jiné databáze*. Myslím, že mají dost velké zásoby nápadů a nemají dost vývojářů, aby je všechny realizovali.

Tato funkce byla požadována v roce 2006 a dosud není realizován. Myslím, že to má nízkou prioritu, protože to můžete obejít kombinací LEFT a RIGHT OUTER JOIN s UNION ALL. Není to příjemné, ale funguje to. Změňte toto:

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

na toto:

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

* Abychom byli k MySQL spravedliví, mají také některé funkce, které mnoho jiných databází nemá.



  1. MySQL Vyberte řádky při prvním výskytu každé jedinečné hodnoty

  2. Optimalizace aktualizačních dotazů

  3. APPARENT DEADLOCK Vytváření nouzových vláken pro nepřiřazené nevyřízené úkoly

  4. Rekurzivní zahrnují Sequelize?