Алгоритм выполнения многотабличного запроса
Рассмотрим порядок выполнения многотабличного запроса на примере запроса, объединяющего данные из двух различных таблиц (см. Рис. 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.3 - Алгоритм выполнения многотабличного запроса |
Дата добавления: 2015-02-03; просмотров: 1165;