Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que o MySQL relata um erro de sintaxe em FULL OUTER JOIN?


Não há FULL OUTER JOIN em MySQL. Consulte 7.2.12. Simplificação de junção externa e 12.2.8.1. Sintaxe de JOIN :

Você pode emular FULL OUTER JOIN usingUNION (do MySQL 4.0.0 em diante):

com duas tabelas t1, t2:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

com três tabelas t1, t2, t3:
SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
LEFT JOIN t3 ON t2.id = t3.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
LEFT JOIN t3 ON t2.id = t3.id
UNION
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id
RIGHT JOIN t3 ON t2.id = t3.id