Partilhar via


Criar junções externas (Visual Database Tools)

Aplica-se a:SQL Server

Por padrão, o Designer de Consulta e Exibição cria uma junção interna entre tabelas. As junções internas eliminam as linhas que não correspondem a uma linha da outra tabela. As junções externas, no entanto, retornam todas as linhas de pelo menos uma das tabelas ou visões mencionadas na cláusula FROM, desde que essas linhas atendam a quaisquer condições de pesquisa WHERE ou HAVING. Se quiser incluir linhas de dados no conjunto de resultados que não tenham uma correspondência na tabela associada, você pode criar uma associação externa.

Quando você cria uma associação externa, a ordem na qual as tabelas aparecem na instrução SQL (conforme refletido no painel SQL) é significativa. A primeira tabela adicionada torna-se a tabela "esquerda" e a segunda tabela torna-se a tabela "direita". (A ordem real em que as tabelas aparecem no painel Diagrama não é significativa.) Quando você especifica uma junção externa esquerda ou direita, está se referindo à ordem em que as tabelas foram adicionadas à consulta e à ordem em que aparecem na instrução SQL no painel SQL.

Para criar uma junção externa

  1. Crie a junção, automaticamente ou manualmente. Para obter detalhes, consulte unir tabelas automaticamente (Visual Database Tools) ou unir tabelas manualmente (Visual Database Tools).

  2. Selecione a linha de junção no painel Diagrama e, no menu do Designer de Consulta, escolha Selecionar Todas as Linhas <nome da tabela>, selecionando o comando que inclui a tabela cujas linhas extras você deseja incluir.

    • Escolha a primeira tabela para criar uma junção externa esquerda.

    • Escolha a segunda tabela para criar uma junção externa direita.

    • Escolha ambas as tabelas para criar uma junção externa completa.

Quando você especifica uma associação externa, o Designer de Consulta e Exibição modifica a linha de junção para indicar uma associação externa.

Além disso, o Designer de Consulta e Exibição modifica a instrução SQL no painel SQL para refletir a alteração no tipo de associação, conforme mostrado na instrução a seguir:

SELECT employee.job_id, employee.emp_id,  
   employee.fname, employee.minit, jobs.job_desc  
FROM employee LEFT OUTER JOIN jobs ON   
    employee.job_id = jobs.job_id  

Como uma associação externa inclui linhas incomparáveis, você pode usá-la para localizar linhas que violam restrições de chave estrangeira. Para fazer isso, crie uma junção externa e, em seguida, adicione uma condição de pesquisa para localizar linhas nas quais a coluna de chave primária da tabela mais à direita é nula. Por exemplo, a seguinte junção externa localiza linhas na tabela employee que não têm linhas correspondentes na tabela jobs:

SELECT employee.emp_id, employee.job_id  
FROM employee LEFT OUTER JOIN jobs   
   ON employee.job_id = jobs.job_id  
WHERE (jobs.job_id IS NULL)  

Ver também

Consulta com Junções (Ferramentas de Base de Dados Visuais)