sexta-feira, 23 de novembro de 2012

Como realizar o FULL OUTER JOIN no MySQL

O comando OUTER JOIN não faz parte do mysql, no entanto existme inúmeras maneiras de se fazer isso no mysql, vou colocar o exemplo mais prático.

Através do método UNION ALL e da exclusão do JOIN.

Uma maneira de fazer  UNIÃO incluir apenas os duplicados que eu quero é usar uma exclusão JOIN para eliminar qualquer coisa a partir do segundo resultado que já está incluído no primeiro. Como segue:

Este manipula linhas duplicadas corretamente e não incluir qualquer coisa que não deveria. É necessário usar UNION ALL. Isto poderá ser significativamente mais eficiente em grandes conjuntos de resultados, uma vez que não há necessidade de classificar e remover duplicatas.



select * from apples as a
   left outer join oranges as o on a.price = o.price
union all
select * from apples as a
   right outer join oranges as o on a.price = o.price
where a.price is null;
fonte: http://www.xaprb.com/blog/2006/05/26/how-to-write-full-outer-join-in-mysql/

2 comentários:

  1. Este WHERE não funciona no MySQL. Sem ele e com ele dá no mesmo. Como usar o WHERE corretamente???

    ResponderExcluir
  2. Este comentário foi removido pelo autor.

    ResponderExcluir