Join

Em PostgreSQL, a cláusula JOIN é usada para combinar registros de duas ou mais tabelas com base em uma condição de junção e retornar os registros correspondentes. A cláusula JOIN é uma parte essencial das consultas SQL, permitindo que você relacione dados de diferentes tabelas em um banco de dados. Existem diferentes tipos de junções disponíveis em PostgreSQL, incluindo INNER JOIN, LEFT JOIN (ou LEFT OUTER JOIN), RIGHT JOIN (ou RIGHT OUTER JOIN), e FULL JOIN (ou FULL OUTER JOIN).

Aqui está a sintaxe básica da cláusula JOIN:

SELECT colunas
FROM tabela1
JOIN tabela2
ON tabela1.coluna = tabela2.coluna;

Neste exemplo, tabela1 e tabela2 são os nomes das tabelas que você deseja combinar, e coluna é a coluna com base na qual você deseja realizar a junção. A condição de junção (ON tabela1.coluna = tabela2.coluna) especifica como as tabelas devem ser relacionadas.

A seguir estão os tipos de junção disponíveis em PostgreSQL:

1. INNER JOIN:

A cláusula INNER JOIN combina apenas os registros que têm correspondência em ambas as tabelas.

SELECT colunas
FROM tabela1
INNER JOIN tabela2
ON tabela1.coluna = tabela2.coluna;

2. LEFT JOIN (ou LEFT OUTER JOIN):

A cláusula LEFT JOIN retorna todos os registros da tabela à esquerda e os registros correspondentes da tabela à direita. Se não houver correspondência, os resultados ainda mostrarão linhas da tabela à esquerda com valores nulos para as colunas da tabela à direita.

SELECT colunas
FROM tabela1
LEFT JOIN tabela2
ON tabela1.coluna = tabela2.coluna;

3. RIGHT JOIN (ou RIGHT OUTER JOIN):

A cláusula RIGHT JOIN retorna todos os registros da tabela à direita e os registros correspondentes da tabela à esquerda. Se não houver correspondência, os resultados ainda mostrarão linhas da tabela à direita com valores nulos para as colunas da tabela à esquerda.

SELECT colunas
FROM tabela1
RIGHT JOIN tabela2
ON tabela1.coluna = tabela2.coluna;

4. FULL JOIN (ou FULL OUTER JOIN):

A cláusula FULL JOIN retorna todos os registros quando há uma correspondência em uma das tabelas. Ele combina registros de ambas as tabelas, preenchendo com valores nulos para as colunas onde não há correspondência.

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

Esses tipos de junção permitem que você relacione dados de maneiras diferentes, dependendo das necessidades específicas de sua consulta. As condições de junção podem envolver várias colunas e operadores de comparação, permitindo uma flexibilidade significativa na maneira como você relaciona dados entre tabelas.