Объединение связанных таблиц в запросе
Объединение связанных таблиц в запросе
Для выборки связанной информации из нескольких таблиц используется объединение (join). Чтобы создать объединение в запросе, необходимо определить первичные (primary) и внешние (foreign) ключи в таблицах, участвующих в объединении (эти понятия обсуждаются в главе 1, "Основы построения баз данных"). Например, рассмотрим две связанные таблицы с показанными ниже структурами.
tblCustomer ID FirstName LastName Address City State PostalCode Phone Fax Email 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.
НА ЗАМЕТКУ
Обратите внимание, что в этом результате объединения один и тот же клиент отображен дважды, хотя его имя было введено в базу данных один раз. Это значит, что клиент имеет несколько заказов. Иными словами, при нескольких заказах одного и того же клиента вам не пришлось вводить в базу данных информацию об этом клиенте несколько раз. Вместе с тем в результате выполнения запроса иногда можно получить избыточную информацию. Для исправления такой ситуации можно применять несколько разных методов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Реализация связанных списков в ядре Linux
Реализация связанных списков в ядре Linux В ядре Linux для прохождения по связанным спискам используется унифицированный подход. При прохождении связанного списка, если не важен порядок прохода, эту операцию не обязательно начинать с головного элемента, на самом деле вообще
Объединение ячеек таблиц
Объединение ячеек таблиц Осталось поговорить об одной интересной особенности языка HTML. Это так называемое объединение ячеек таблиц. Лучше всего рассмотреть пример — простую таблицу, HTML-код которой приведен в листинге 5.10. Листинг
12.1. Решение проблем, связанных с загрузкой Windows Vista
12.1. Решение проблем, связанных с загрузкой Windows Vista Специальные варианты загрузки Windows VistaЕсли вы столкнулись с ситуацией, когда Windows Vista не загружается, попробуйте использовать один из дополнительных вариантов загрузки. Чтобы войти в меню выбора дополнительных вариантов
Объединение ячеек таблиц
Объединение ячеек таблиц Осталось поговорить об одной интересной особенности языка HTML. Это так называемое объединение ячеек таблиц. Лучше всего рассмотреть пример — простую таблицу, HTML-код которой приведен в листинге 5.10. Листинг
10.8.2 Использование полей заголовка в запросе на соединение
10.8.2 Использование полей заголовка в запросе на соединение Первый сегмент, посылаемый для открытия соединения, имеет значение флага SYN, равное 1, и флага ACK — 0. Начальный SYN является единственным сегментом, имеющим поле ACK со значением 0. Отметим, что средства защиты
Использование в запросе нескольких таблиц. Предложение FROM
Использование в запросе нескольких таблиц. Предложение FROM Как видно из приведенного в конце предыдущего раздела синтаксиса оператора SELECT, в предложении FROM допускается указание нескольких таблиц. Простое перечисление таблиц практически не используется, поскольку оно
Несколько связанных технологий баз данных
Несколько связанных технологий баз данных При программировании баз данных в Office вы столкнетесь еще с целым рядом терминов, поэтому вам стоит ознакомиться с ними заранее. ODBC (Open DataBase Connectivity- Открытый интерфейс доступа к базам данных) - это старый стандарт программирования
Определение контекстно-связанных объектов
Определение контекстно-связанных объектов Чтобы определить класс (SportsCarTS), автоматически поддерживающий потоковую безопасность, без добавления в него сложной логики синхронизации патока при реализации членов, следует взять объект, производный от ContextBoundObject, и применить
Навигационные возможности для связанных таблиц
Навигационные возможности для связанных таблиц Чтобы продемонстрировать возможности DataRelation при программной реализации доступа к данным связанных таблиц, добавьте в форму новый тип Button и соответствующий ему TextBox. В результате конечный пользователь должен получить
Роль элементов управления, связанных с контролем ввода
Роль элементов управления, связанных с контролем ввода Заключительной группой рассматриваемых здесь элементов управления Web-формы являются так называемые элементы контроля ввода. В отличие от остальных рассмотренных нами элементов управления Web-формы, элементы
7.4. Решение с помощью GCD задач, связанных с пользовательским интерфейсом
7.4. Решение с помощью GCD задач, связанных с пользовательским интерфейсом Постановка задачи Интерфейс программирования приложений GCD используется для параллельного программирования, и необходимо узнать, каков оптимальный способ его применения с другими API, связанными с
7.5. Синхронное решение с помощью GCD задач, не связанных с пользовательским интерфейсом
7.5. Синхронное решение с помощью GCD задач, не связанных с пользовательским интерфейсом Постановка задачи Необходимо выполнять синхронные задачи, в которых не участвует код, связанный с пользовательским
Использование ORDER BY в группирующем запросе
Использование ORDER BY в группирующем запросе Начиная с Firebird версии 1.5, элементы в списке ORDER BY В группирующем запросе должны быть либо агрегатными функциями, допустимыми в контексте группирования, либо элементами, которые представлены в списке GROUP BY.Firebird 1.0.x является менее