Mysql
 sql >> Database >  >> RDS >> Mysql

Un modo efficiente per simulare il join esterno completo in MySQL?

Puoi usare un LEFT JOIN e un 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

Ci sono anche alcune informazioni su Wikipedia su questo argomento:Full outer join .

L'articolo di Wikipedia suggerisce di utilizzare UNION in MySQL. Questo è leggermente più lento di UNION ALL, ma soprattutto non darà sempre il risultato corretto:rimuoverà le righe duplicate dall'output. Quindi preferisci usare UNION ALL invece di UNION qui.