Tipos de associações

Quando você associa tabelas, o tipo de associação criada afeta as linhas que aparecem no conjunto de resultados. Você pode criar os seguintes tipos de associações:

  • Associação interna uma associação que exibe somente as linhas que possuem uma correspondência em ambas as tabelas de associadas. (Esse é o tipo padrão de associação na Query e View Designer.) Por exemplo, você pode associar a titles e publishers tabelas para criar um conjunto de resultados que mostra o nome do Editor para cada título. Uma associação interna, títulos para os quais você não tem informações sobre a editora não são incluídos no conjunto de resultados, nem as editoras sem títulos. A SQL resultante dessa associação pode parecer com isso:

    SELECT     title, pub_name
    FROM         titles INNER JOIN
    publishers ON titles.pub_id = publishers.pub_id
    
    ObservaçãoObservação

    Colunas contendo valor nulo não coincidem quaisquer valores quando você estiver criando uma associação interna e portanto é excluídas do conjunto de resultados. Valores nulos não coincidem com outros valores nulos.

  • Associação externa uma associação que incluí linhas mesmo que não tenham linhas relacionadas na tabela associada. Você pode criar três variações de uma associação externa para especificar as linhas não coincidentes para ser incluído:

    • Associação externa esquerda todas as linhas da primeira tabela nomeada ("esquerda" tabela, que aparece à esquerda na cláusula JOIN) são incluídos. Linhas não coincidentes na tabela direita não aparecem. Por exemplo, a instrução de SQL a seguir ilustra uma junção externa esquerda entre as titles e publishers tabelas para incluir todos os títulos, mesmo aqueles não possuem informações sobre a editora:

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles LEFT OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
    • Associação externa direita todas as linhas da segunda tabela nomeada ("direita" tabela, que aparece à direita na cláusula JOIN) são incluídos. Linhas não coincidentes na tabela à esquerda não são incluídas. Por exemplo, uma associação externa direita entre as titles e publishers tabelas incluirá todas as editoras, mesmo aqueles que não tem títulos na titles tabela. A SQL resultante pode parecer com isso:

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles RIGHT OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
    • Associação externa completa todas as linhas em todas as tabelas associadas são incluídas, coincidentes ou não. Por exemplo, uma associação externa completa entre titles e publishers mostra todos os títulos e todas as editoras, mesmo aqueles que não têm correspondências na outra tabela.

      SELECT titles.title_id, 
             titles.title, 
             publishers.pub_name
      FROM titles FULL OUTER JOIN publishers 
                  ON titles.pub_id 
                   = publishers.pub_id
      
      ObservaçãoObservação

      Alguns bancos de dados, como Oracle, não oferecem suporte a associações externas completas.

  • Cross join uma associação cujo conjunto de resultados inclui uma linha para cada par de linhas possível das duas tabelas. Por exemplo, os autores CROSS JOIN editoras produz um conjunto de resultados com uma linha para cada combinação autor/editora possível. A SQL resultante pode parecer com isso:

    SELECT *
    FROM authors CROSS JOIN publishers 
    

Consulte também

Conceitos

Trabalhar com dados no painel de resultados

Outros recursos

Especificando critérios de pesquisa