Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL INNER JOIN

O `INNER JOIN` no PostgreSQL é usado para recuperar registros que tenham valores correspondentes em ambas as tabelas envolvidas na junção. É uma das operações mais comuns para combinar linhas de duas ou mais tabelas com base em uma coluna relacionada.

Uso

O `INNER JOIN` é usado quando você precisa selecionar linhas que tenham valores correspondentes em outra tabela. Essa operação é essencial para que você combine dados armazenados em tabelas com uma chave comum.


SELECT columns
FROM table1
INNER JOIN table2 ON table1.common_column = table2.common_column;

Nessa sintaxe, o `INNER JOIN` é usado para conectar `table1` e `table2` com base em uma coluna comum. Se você não encontrar correspondências entre as tabelas, nenhuma linha será retornada.

Exemplos

1. Básico INNER JOIN


SELECT customers.name, orders.order_id
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;

Este exemplo recupera os nomes dos clientes e seus IDs de pedido correspondentes, unindo as tabelas `customers` e `orders` na coluna `customer_id`.

2. INNER JOIN com condições adicionais


SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id
WHERE departments.location = 'New York';

Aqui, o `INNER JOIN` é usado juntamente com uma cláusula `WHERE` para filtrar os resultados e incluir apenas os funcionários que trabalham em departamentos localizados em Nova York.

3. INNER JOIN com várias tabelas


SELECT students.name, courses.course_name, instructors.instructor_name
FROM students
INNER JOIN enrollments ON students.student_id = enrollments.student_id
INNER JOIN courses ON enrollments.course_id = courses.course_id
INNER JOIN instructors ON courses.instructor_id = instructors.instructor_id;

Este exemplo mostra como você pode usar várias cláusulas `INNER JOIN` para extrair dados de quatro tabelas: `students`, `enrollments`, `courses` e `instructors`.

Dicas e práticas recomendadas

  • Use `INNER JOIN` somente para dados correspondentes. É ideal quando você precisa de linhas que existem em ambas as tabelas.
  • Garanta a indexação nas colunas de união. Indexar as colunas usadas na condição `ON` para melhorar o desempenho da consulta.
  • Use aliases para facilitar a leitura. Simplifique consultas complexas usando aliases de tabelas para maior clareza. Por exemplo:
    
        SELECT c.name, o.order_id
        FROM customers AS c
        INNER JOIN orders AS o ON c.customer_id = o.customer_id;
        
  • Combine com outras cláusulas. Aprimore a filtragem e a manipulação de dados usando `INNER JOIN` com as cláusulas `WHERE`, `GROUP BY` e `ORDER BY`.
  • Verifique se há nulos. Lembre-se de que o `INNER JOIN` exclui linhas com nulos na coluna de junção, o que pode levar à falta de dados se não for tratado adequadamente. Considere o uso de funções `COALESCE` ou similares para lidar com possíveis valores nulos em colunas de junção.