Nesse post vou mostrar com fazer uma junção (join) com três ou mais tabelas. Operação importante caso você queira juntar dados em mais de duas tabelas.
Vamos a um exemplo:
Digamos que você tenha três tabelas, e precisa consultar o Nome dos Autores e os Títulos de sua Autoria.
- Livro – Com os dados dos livros
- Autor_Livro – Que contem o Codigo do Livro e a Matrícula do Autor, essa tabela faz a junção entre Livro e Autor
- Autor – Com os dados do Autor
O join para mais de duas tabelas funciona como um join simples, ou seja, basta você ir acrescentado mais joins na sua consulta.
Veja como fica a consulta:
select nome as Nome, titulo as Titulo from autor a join autor_livro al on al.matricula = a.matricula join livro l on al.codigo_livro = l.codigo
No exemplo acima fizemos um Join para o Nome e outro Join para o Titulo.
O resultado será o seguinte:
Se você desejar que em sua consulta retorne todos os dados, mesmo que na ligação uma das tabelas não contenha dados, terá que usa RIGHT JOIN ou LEFT JOIN.
Veja mais sobre Inner Join, Left Join e Right Join.