ВУЗ:
Составители:
Рубрика:
– 101 –
4.5. МНОГОТАБЛИЧНЫЕ ЗАПРОСЫ
До сих пор мы рассматривали однотабличные запросы, однако на практике
довольно часто приходится иметь дело с многотабличными запросами. Напри-
мер, предположим, что требуется выполнить запрос, реализующий вывод спи-
ска служащих и офисов, в которых они работают (таблицы
SLUZHASCHIE и OFFI‐
SY) или вывод списка заказов, выполненных за заданный период, включая сле-
дующую информацию: наименование заказанного товара, стоимость заказа и
имя клиента (таблицы
ZAKAZY, CLIENTY и TOVARY).
Для ответа на эти вопросы
SQL обеспечивает возможность выполнения мно-
готабличных запросов, объединяющих данные из нескольких таблиц.
4.5.1. А
ЛГОРИТМ ВЫПОЛНЕНИЯ МНОГОТАБЛИЧНОГО ЗАПРОСА
Рассмотрим порядок выполнения многотабличного запроса на примере за-
проса, объединяющего данные из двух различных таблиц (см. Рис. 4.3. ). До-
пустим, что требуется вывести список всех заказов, включая номер и стоимость
заказа, фамилию и имя клиента. Перечисленные данные содержатся в следую-
щих таблицах:
– Номер (ID_ORDER) и Стоимость (PRICE) заказа содержатся в таблице ZAKAZY;
– Имя клиента (COMPANY) и лимит кредита (LIMIT_CREDIT) содержатся в табли-
це
CLIENTY .
Рассмотрим умозрительный порядок выполнения данного заказа.
1. Сначала построим результирующую таблицу, содержащую четыре пере-
численные выше колонки (
ID_ORDER, COMPANY, PRICE, LIMIT_CREDIT).
2. Найдите в таблице
ZAKAZY Номер и Стоимость первого заказа (первой за-
писи) и перепишите полученные значения в поля
ID_ORDER и PRICE результи-
рующей таблицы.
3. Запомните Номер клиента (
ID_CLN) для первой записи таблицы ZAKAZY.
4. Перейдите к таблице
CLIENTYи в столбце ID_CLN найдите значение, соот-
ветствующее запомненному значению поля
ID_CLN для первой записи таблицы
ZAKAZY.
5. Отыщите Имя клиента и Лимит кредита для найденной записи таблицы
CLIENTY и перепишите их в поля COMPANY и LIMIT_CREDIT результирующей таб-
лицы.
6. Таким образом, мы создали одну строку результирующей таблицы. Далее
повторите шаги 2
5 до тех пор, пока не будут перечислены все заказы.
В данном алгоритме можно зафиксировать два важных момента:
– каждая строка результирующей таблицы формируется из пары строк: одна
строка находится в таблице
ZAKAZY, а другая в таблице CLIENTY.
– любая пара строк определяется по совпадению значений ключевых полей.
4.5.2. В
НУТРЕННЕЕ ОБЪЕДИНЕНИЕ ТАБЛИЦ
Описанный выше процесс формирования пар строк для записи в результи-
рующую таблицу называется
объединением таблиц.
Страницы
- « первая
- ‹ предыдущая
- …
- 99
- 100
- 101
- 102
- 103
- …
- следующая ›
- последняя »
