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.