Tuesday 3 December 2024

Quando você deseja ver informações de várias tabelas, pode usar uma instrução SELECT. As instruções SELECT podem recuperar e unir valores de coluna de duas ou mais tabelas em uma única linha. A recuperação é baseada em uma condição especificada, normalmente de valores de coluna correspondentes.
O ingrediente principal de uma JOIN é, normalmente, combinar valores de coluna em linhas de cada tabela que participa da JOIN. O resultado de uma JOIN associa linhas de uma tabela com linhas de outra tabela. Dependendo do tipo de operação de JOIN, algumas linhas podem ser formadas contendo valores de coluna em uma tabela que não correspondem aos valores de coluna em outra tabela.

Uma tabela unida especifica uma tabela de resultados intermediária que é o resultado de uma JOIN interna ou externa. A tabela é derivada pela aplicação de um dos operadores de JOIN — INNER, FULL OUTER, LEFT OUTER ou RIGHT OUTER — a seus operandos.

  • INNER JOIN
    Combina cada linha da tabela esquerda com cada linha da tabela direita, mantendo apenas as linhas nas quais a condição de JOIN é verdadeira.
    Você pode usar uma INNER JOIN em uma instrução SELECT para recuperar apenas as linhas que atendem às condições de JOIN em cada tabela especificada.
  • OUTER JOIN
    Inclui as linhas produzidas pela INNER JOIN, além das linhas ausentes, dependendo do tipo de OUTER JOIN:
    • LEFT OUTER JOIN
      Inclui as linhas da tabela esquerda que estavam faltando na INNER JOIN.
      A cláusula LEFT OUTER JOIN lista as linhas da tabela esquerda, mesmo que não haja linhas correspondentes na tabela direita.
    • RIGHT OUTER JOIN
      Inclui as linhas da tabela direita que estavam faltando na INNER JOIN.
      A cláusula RIGHT OUTER JOIN lista as linhas da tabela à direita, mesmo que não haja linhas correspondentes na tabela à esquerda.
    • FULL OUTER JOIN
      Inclui as linhas de ambas as tabelas que estavam faltando na INNER JOIN.
      A cláusula FULL OUTER JOIN resulta na inclusão de linhas de duas tabelas. Se um valor estiver ausente quando as linhas forem unidas, esse valor será nulo na tabela de resultados.