sql >> Databasteknik >  >> RDS >> Mysql

Finns det en anledning till att MySQL inte stöder FULLSTÄNDIG YTTRE JOINS?

MySQL saknar mycket funktionalitet som andra databaser har*. Jag tror att de har en ganska stor eftersläpning av idéer och inte tillräckligt många utvecklare för att implementera dem alla.

Den här funktionen begärdes 2006 och är fortfarande inte implementerad. Jag antar att det har låg prioritet eftersom du kan komma runt det genom att kombinera LEFT och RIGHT OUTER JOIN med en UNION ALL. Inte trevligt, men det gör susen. Ändra detta:

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

till detta:

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

* För att vara rättvis mot MySQL har de också vissa funktioner som många andra databaser inte har.



  1. Hur man hämtar anslutningssträngen från en databas

  2. Returnera en lista över database-postprofiler i SQL Server (T-SQL)

  3. MySQL-fel 2013

  4. 6 sätt att kontrollera din MariaDB-version