Bóson Treinamentos em Ciência e Tecnologia

MySQL – LEFT e RIGHT JOIN – Consultar dados em duas ou mais tabelas

Left Join e Right Join em MySQL

MySQL – LEFT e RIGHT JOIN – Consultar dados em duas ou mais tabelas

Em continuação ao nosso estudo sobre JOINS em MySQL, vamos analisar nesta lição o uso do OUTER JOINS. Há três tipos principais:

Vamos ver a sintaxe e alguns exemplos de cada um deles. Falaremos também sobre o CROSS JOIN nesta lição.

LEFT JOIN

Sintaxe:

SELECT colunas
FROM tabela_esq
LEFT (OUTER) JOIN tabela_dir
ON tabela_esq.coluna=tabela_dir.coluna;

Exemplo:

SELECT * FROM tbl_autores
LEFT JOIN tbl_Livro
ON tbl_Livro.ID_Autor = tbl_autores.ID_Autor;

LEFT JOIN excluindo correspondências:

Sintaxe:

SELECT coluna
FROM tabela_esq
LEFT (OUTER) JOIN tabela_dir
ON tabela_esq.coluna=tabela_dir.coluna
WHERE tabela_dir.coluna IS NULL;

Exemplo:

SELECT * FROM tbl_autores
LEFT JOIN tbl_Livro
ON tbl_Livro.ID_Autor = tbl_autores.ID_Autor
WHERE tbl_Livro.ID_Autor IS NULL;

RIGHT JOIN

Sintaxe:

SELECT colunas
FROM tabela_esq
RIGHT (OUTER) JOIN tabela_dir
ON tabela_esq.coluna=tabela_dir.coluna;

Exemplo:

SELECT * FROM tbl_Livro AS Li
RIGHT JOIN tbl_editoras AS Ed
ON Li.ID_editora = Ed.ID_editora;

RIGHT JOIN excluindo correspondências:

Sintaxe:

SELECT coluna
FROM tabela_esq
RIGHT (OUTER) JOIN tabela_dir
ON tabela_esq.coluna=tabela_dir.coluna
WHERE tabela_esq.coluna IS NULL;

Exemplo:

SELECT * FROM tbl_Livro
RIGHT JOIN tbl_editoras
ON tbl_Livro.ID_editora = tbl_editoras.ID_editora
WHERE tbl_Livro.ID_editora IS NULL;

FULL JOIN

Sintaxe:

SELECT colunas
FROM tabela1
FULL (OUTER) JOIN tabela2
ON tabela1.coluna=tabela2.coluna;

FULL JOIN excluindo correspondências:

Sintaxe:

SELECT colunas
FROM tabela1
FULL (OUTER) JOIN tabela2
ON tabela1.coluna=tabela2.coluna
WHERE tabela1.coluna IS NULL
OR tabela2.coluna IS NULL;

CROSS JOIN

Um CROSS JOIN retorna um produto cartesiano entre as tabelas, mostrando todas as combinações possíveis entre os registros.

Sintaxe:

SELECT colunas FROM tabela1
CROSS JOIN tabela2;

A figura abaixo representa o produto cartesiano de um Cross Join entre as tabelas de livros e autores:

Vejamos um exemplo de CROSS JOIN – Retornar Nome e Preço dos livros, cruzando os dados com a tabela de autores:

SELECT Nome_Livro, Preco_Livro
FROM tbl_livro
CROSS JOIN tbl_autores;

Assista a um vídeo para tirar suas dúvidas e ver os exemplos em prática:

Sair da versão mobile