Книга: Обработка баз данных на Visual Basic®.NET
Объединение связанных таблиц в запросе
Для выборки связанной информации из нескольких таблиц используется объединение (join). Чтобы создать объединение в запросе, необходимо определить первичные (primary) и внешние (foreign) ключи в таблицах, участвующих в объединении (эти понятия обсуждаются в главе 1, "Основы построения баз данных"). Например, рассмотрим две связанные таблицы с показанными ниже структурами.
tblCustomer |
---|
ID |
FirstName |
LastName |
Address |
City |
State |
PostalCode |
Phone |
Fax |
tblOrder |
---|
ID |
CustomerID |
OrderDate |
OrderAmount |
Хотя в таблице tblOrder хранится информация о заказах, а в таблице tblCustomer — информация о клиентах, вполне вероятно, что вам потребуется, например, отобрать такую информацию о заказах клиентов, как показано ниже.
FirstName | LastName | OrderDate |
---|---|---|
Jane | Winters | 9/10/2001 |
Jane | Winters | 8/16/2001 |
Thurston | Ryan | 7/2/2001 |
Dave | Martin | 6/5/2001 |
Daisy | Klein | 4/4/2001 |
... |
Такой результирующий набор нетрудно получить, используя объединение, несмотря на то что необходимые данные хранятся в разных таблицах. Можно надеяться на получение нужных данных, если сообщить процессору баз данных о том, что первичный ключ таблицы tblCustomer(ID) связан с внешним ключом ((CustomerID)) таблицы tblOrder.
НА ЗАМЕТКУ
Обратите внимание, что в этом результате объединения один и тот же клиент отображен дважды, хотя его имя было введено в базу данных один раз. Это значит, что клиент имеет несколько заказов. Иными словами, при нескольких заказах одного и того же клиента вам не пришлось вводить в базу данных информацию об этом клиенте несколько раз. Вместе с тем в результате выполнения запроса иногда можно получить избыточную информацию. Для исправления такой ситуации можно применять несколько разных методов.
- Безопасная работа с внешними таблицами
- Модификация системных таблиц
- Безопасность временных таблиц
- Безопасность внешних таблиц. Параметр EXTERNAL FILE DIRECTORY
- 6.5 Хост в таблице маршрутизации IP
- Управление объединением содержимого узлов
- Использование представления в виде таблицы данных
- 4.3. Логические функции и таблицы истинности
- ГЛАВА 16. Таблицы.
- Определение контекстно-связанных объектов
- 5.1.13. Таблицы
- Просмотр и редактирование таблиц