Compartilhar via


Criar junções externas (Visual Database Tools)

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

Quando você cria uma junção externa, a ordem na qual as tabelas aparecem na instrução SQL (conforme refletido no painel SQL) é significativa. A primeira tabela que você adiciona se torna a tabela "esquerda" e a segunda se torna a tabela "direita". (A ordem real na qual as tabelas aparecem no painel diagrama não é significativa.) Ao especificar uma junção externa esquerda ou direita, você está se referindo à ordem na qual as tabelas foram adicionadas à consulta e à ordem na qual elas 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 união no painel Diagrama, e então, no menu Designer de Consultas, escolha Selecionar Todas as Linhas 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 junção externa, o Designer de Consulta e Exibição modifica a linha de junção para indicar uma junçã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 junção, conforme mostrado na seguinte instrução:

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 junção externa inclui linhas sem correspondência, você pode usá-la para encontrar linhas que violam restrições de chave estrangeira. Para fazer isso, crie uma junção externa e 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 junção externa a seguir 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)  

Consulte Também

Consultar com junções (Ferramentas de Banco de Dados Visual)
Caixa de diálogo Unir (Visual Database Tools)