Resumo : neste tutorial você aprenderá como usar o MySQL RIGHT JOIN
para consultar dados de duas tabelas.
Introdução à cláusula RIGHT JOIN do MySQL
MySQL RIGHT JOIN
é semelhante, LEFT JOIN,
exceto que o tratamento das tabelas unidas é revertido.
Aqui está a sintaxe de RIGHT JOIN
duas tabelas t1
e t2
:
SELECT
select_list
FROM t1
RIGHT JOIN t2 ON
join_condition;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- A
t1
é a mesa da esquerda et2
é a mesa da direita. - Especifica a
join_condition
regra para correspondência de linhas de ambas as tabelas.
Se join_condition
usar o operador igual ( =
) e as colunas unidas de ambas as tabelas tiverem o mesmo nome, você poderá usar a USING
sintaxe assim:
SELECT
select_list
FROM t1
RIGHT JOIN t2 USING(column_name);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Portanto, as seguintes condições de junção são equivalentes:
ON t1.column_name = t2.column_name
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
e
USING (column_name);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Como RIGHT JOIN
funciona.
O RIGHT JOIN
começa a selecionar dados da tabela direita ( t2
). Ele combina cada linha da tabela direita com cada linha da tabela esquerda. Se ambas as linhas fizerem com que a condição de junção seja avaliada como TRUE
, RIGHT JOIN
combinará as colunas dessas linhas em uma nova linha e incluirá essa nova linha no conjunto de resultados.
Se uma linha da tabela direita não tiver uma linha correspondente da tabela esquerda, combina RIGHT JOIN
colunas de linhas da tabela direita com NULL
valores de todas as colunas da tabela direita em uma nova linha e inclui essa linha no conjunto de resultados.
Em outras palavras, RIGHT JOIN
retorna todas as linhas da tabela direita, independentemente de haver ou não linhas correspondentes da tabela esquerda.
É importante enfatizar que as cláusulas RIGHT JOIN
and LEFT JOIN
são funcionalmente equivalentes e podem substituir umas às outras desde que a ordem das tabelas seja invertida.
Observe que the RIGHT OUTER JOIN
é sinônimo de RIGHT JOIN
. Portanto, você pode usá-los de forma intercambiável.
Exemplos de cláusula MySQL RIGHT JOIN
Usaremos as tabelas employees
e customers
o banco de dados de exemplo para a demonstração:
A coluna salesRepEmployeeNumber
da tabela customers
está vinculada à coluna employeeNumber
da employees
tabela.
Um representante de vendas, ou um funcionário, pode ser responsável por zero ou mais clientes. E cada cliente é atendido por nenhum ou um representante de vendas.
Se o valor da coluna salesRepEmployeeNumber
for NULL, significa que o cliente não possui representante de vendas.
1) Exemplo simples de MySQL RIGHT JOIN
Esta instrução usa a RIGHT JOIN
cláusula join the table customers
with the table employees
.
SELECT
employeeNumber,
customerNumber
FROM
customers
RIGHT JOIN employees
ON salesRepEmployeeNumber = employeeNumber
ORDER BY
employeeNumber;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo:
- O
RIGHT JOIN
retorna todas as linhas da tabelaemployees
, independentemente de as linhas da tabelaemployees
terem valores correspondentes na colunasalesRepEmployeeNumber
da tabelacustomers
. - Se uma linha da tabela
employees
não tiver nenhuma linha correspondente da tabelacustomers
, osRIGHT JOIN
usosNULL
para acustomerNumber
coluna.
2) Usando MySQL RIGHT JOIN
para encontrar linhas incompatíveis
A declaração a seguir usa a RIGHT JOIN
cláusula para encontrar funcionários que não são responsáveis por nenhum cliente:
SELECT
employeeNumber,
customerNumber
FROM
customers
RIGHT JOIN employees ON
salesRepEmployeeNumber = employeeNumber
WHERE customerNumber is NULL
ORDER BY employeeNumber;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- MySQL
RIGHT JOIN
permite consultar dados de duas ou mais tabelas relacionadas. - O
RIGHT JOIN
começa a selecionar linhas da tabela certa. Ele sempre retorna linhas da tabela direita, existindo ou não linhas correspondentes na tabela esquerda. - O
RIGHT OUTER JOIN
é sinônimo deRIGHT JOIN
.