Форум веб-мастеров  /  Статьи веб-мастера  /  WHOIS-сервис  /  Услуги веб-мастера  /  RSS 
Разделы сайта




Полезные ссылки

wm-help.net -> Электронная библиотека -> SQL/MySQL -> Структуризированный язык запросов (SQL) -> Соединение таблицы со своей копией

Соединение таблицы со своей копией

Соединение таблицы со своей копией

3.2.7. Соединение таблицы со своей копией

В ряде приложений возникает необходимость одновременной обработки данных какой-либо таблицы и одной или нескольких ее копий, создаваемых на время выполнения запроса.

Например, при создании списков студентов (таблица Студенты) возможен повторный ввод данных о каком-либо студенте с присвоением ему второго номера зачетной книжки. Для выявления таких ошибок можно соединить таблицу Студенты с ее временной копией, установив в WHERE фразе равенство значений всех одноименных столбцов этих таблиц кроме столбцов с номером зачетной книжки (для последних надо установить условие неравенства значений).

Временную копию таблицы можно сформировать, указав имя псевдонима за именем таблицы во фразе FROM. Так, с помощью фразы

FROM Блюда X, Блюда Y, Блюда Z
будут сформированы три копии таблицы Блюда с именами X, Y и Z.

В качестве примера соединения таблицы с ней самой сформируем запрос на вывод таких пар блюд таблицы Блюда, в которых совпадает основа, а название первого блюда пары меньше (по алфавиту), чем номер второго блюда пары. Для этого можно создать запрос с одной копией таблицы Блюда (Копия):

SELECT	Блюдо, Копия.Блюдо, Основа
FROM	Блюда, Блюда Копия
WHERE	Основа = Копия.Основа
AND	Блюдо < Копия.Блюдо;

или двумя ее копиями (Первая и Вторая):

SELECT	Первая.Блюдо, Вторая.Блюдо, Основа
FROM	Блюда Первая, Блюда Вторая
WHERE	Первая.Основа = Вторая.Основа
AND	Первая.Блюдо < Вторая.Блюдо;

Получим результат вида

Первая.БлюдоВторая.БлюдоОснова
Морковь с рисомПомидоры с лукомОвощи
Морковь с рисомСалат летнийОвощи
Морковь с рисомСалат витаминныйОвощи
Помидоры с лукомСалат витаминныйОвощи
Помидоры с лукомСалат летнийОвощи
Салат витаминныйСалат летнийОвощи
БастурмаБефстрогановМясо
БастурмаМясо с гарниромМясо
БефстрогановМясо с гарниромМясо

3.2.6 | Содержание | 3.3.1

[ Вверх ]

Rambler's Top100

Другие наши проекты:
бодибилдинг | Строим Домик | RU-домены за 170 рублей |
"Соединение таблицы со своей копией"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2008.
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.053