Full Join
No PostgreSQL, a cláusula FULL JOIN
é usada para combinar registros de duas ou mais tabelas com base em uma condição de junção e retornar todos os registros correspondentes das tabelas à esquerda e à direita, incluindo registros não correspondentes. A sintaxe básica é a seguinte:
SELECT colunas
FROM tabela1
FULL JOIN tabela2
ON tabela1.coluna = tabela2.coluna;
Neste tipo de junção, se não houver correspondência para a condição de junção em ambas as tabelas, a consulta ainda retornará linhas com valores nulos para as colunas da tabela que não têm correspondência.
Aqui está um exemplo prático de como usar a cláusula FULL JOIN
:
Suponha que você tenha duas tabelas, clientes
e pedidos
, e você deseja combinar essas tabelas para encontrar todos os clientes e seus pedidos, incluindo os clientes que não fizeram nenhum pedido e os pedidos que não estão associados a um cliente.
SELECT clientes.nome AS nome_cliente, pedidos.numero_pedido
FROM clientes
FULL JOIN pedidos
ON clientes.id = pedidos.cliente_id;
Neste exemplo, a cláusula FULL JOIN
é usada para combinar as tabelas clientes
e pedidos
com base na correspondência da coluna id
na tabela clientes
com a coluna cliente_id
na tabela pedidos
. A consulta retornará todos os clientes e seus pedidos correspondentes, além de clientes sem pedidos e pedidos sem clientes associados, representados por valores nulos nas colunas apropriadas.
A junção completa (FULL JOIN
) é menos comum do que outras junções como INNER JOIN
e LEFT JOIN
, mas é útil quando você precisa combinar todas as informações de duas ou mais tabelas, incluindo os registros não correspondentes.