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.O 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çã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 tabela nomeada primeiro (a tabela "esquerda", que aparece na cláusula JOIN) são incluídas.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 que 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 na tabela chamada por segundo (a tabela "direita", que aparece na cláusula JOIN) são incluídas.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.O 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çã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.O SQL resultante pode parecer com isso:
SELECT * FROM authors CROSS JOIN publishers
Consulte também
Conceitos
Trabalhar com dados no painel de resultados