sql >> Databasteknik >  >> RDS >> Mysql

Effektivt sätt att simulera fullständig yttre anslutning i MySQL?

Du kan använda en LEFT JOIN och en RIGHT JOIN:

SELECT * FROM tableA LEFT JOIN tableB ON tableA.b_id = tableB.id
UNION ALL
SELECT * FROM tableA RIGHT JOIN tableB ON tableA.b_id = tableB.id
WHERE tableA.b_id IS NULL

Det finns också lite information om detta ämne på Wikipedia:Fullständig yttre anslutning .

Wikipedia-artikeln föreslår att du använder en UNION i MySQL. Detta är något långsammare än UNION ALL, men ännu viktigare ger det inte alltid rätt resultat - det tar bort dubblerade rader från utdata. Så föredrar att använda UNION ALL istället för UNION här.




  1. Schemalagt underhåll av IS-databasen dygnet runt i MS SQL Server

  2. MySQL-prestanda:MySQL/MariaDB-index

  3. Lista alla främmande nycklar på en tabell i SQL Server

  4. Hur man skapar relationer i MySQL