Поделиться через


Практическое руководство. Создание внешних соединений

По умолчанию в конструкторе запросов и представлений создается внутреннее соединение таблиц. Если необходимо включить строки данных, которые не имеют совпадений в соединяемой таблице, в результирующий набор, можно создать внешнее соединение.

При создании внешнего соединения имеет значение порядок, в котором указаны таблицы в инструкции SQL (как показано в области SQL). Первая таблица становится "левой" таблицей, а вторая — "правой". (Фактический порядок, в котором указаны таблицы в области схем, не имеет значения). При установке левого или правого внешнего соединения указывается порядок, в котором таблицы были добавлены в запрос, и порядок, в котором они появляются в инструкции SQL в области SQL.

Примечание

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Чтобы создать внешнее соединение

  1. Создайте соединение автоматически или вручную. Дополнительные сведения см. в разделе Практическое руководство. Автоматическое соединение таблиц или Практическое руководство. Соединение таблиц вручную.

  2. Выберите линию соединения в области схем и в меню Конструктор запросов выберите пункт Выбрать все строки из <имя_таблицы>, в результате чего будет выбрана команда, включающая таблицу, дополнительные строки которой необходимо включить.

    • Выберите первую таблицу для создания левого внешнего соединения.

    • Выберите вторую таблицу для создания правого внешнего соединения.

    • Выберите обе таблицы для создания полного внешнего соединения.

      Примечание

      В некоторых базах данных, например Oracle, полные внешние соединения не поддерживаются.

При указании внешнего соединения конструктор запросов и представлений изменяет линию соединения для отображения внешнего соединения.

Кроме того, конструктор запросов и представлений изменяет инструкцию SQL в области для отражения изменений типа соединения, как показано в следующей инструкции:

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

Так как внешнее соединение содержит несовпадающие строки, можно использовать его для поиска строк, которые нарушают ограничение внешнего ключа. Для этого надо создать внешнее соединение и добавить условие поиска строк, в которых значение столбца первичного ключа самой правой таблицы равно NULL. Например, следующее внешнее соединение находит строки в таблице employee, которая не содержит соответствующих строк в таблице 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)

См. также

Ссылки

Диалоговое окно "Соединение"

Другие ресурсы

Выполнение запросов с помощью соединений