Partilhar via


Criar junções externas (Visual Database Tools)

Aplica-se a:SQL Server

Por padrão, as Ferramentas de Designer de Consulta e Exibição (Visual Database Tools) criam 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 exibições mencionadas na FROM cláusula, desde que essas linhas atendam a quaisquer WHERE condições de HAVING pesquisa. 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 (Visual Database Tools) não é significativa.) Ao especificar uma associação externa esquerda ou direita, você está se referindo à ordem em que as tabelas foram adicionadas à consulta e à ordem em que elas aparecem na instrução SQL no Painel SQL (Visual Database Tools).

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 employee tabela que não têm linhas correspondentes na jobs tabela:

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);