Композиция таблиц

Для исключения всех столбцов, по которым проводится соединение таблиц, надо создать композицию

SELECT Трапеза, Вид, Блюдо, Основа, Выход, Труд FROM Меню, Трапезы, Вид_блюд, Блюда WHERE Меню.Т = Трапезы.Т AND Меню.В = Вид_блюд.В AND Меню.БЛ = Блюда.БЛ;

имеющую вид

Трапеза Блюдо Вид Основа Выход Труд
Завтрак Салат витаминный Закуска Овощи 200.  
Завтрак Мясо с гарниром Закуска Мясо 250.  
Завтрак Омлет с луком Горячее Яйца 200.  
. . . . . .
Ужин Драчена Горячее Яйца 180.  
Ужин Компот Напиток Фрукты 200.  
Ужин Молочный напиток Напиток Молоко 200.  

Тета-соединение таблиц.

В базе данных ПАНСИОН трудно подобрать несложный пример, иллюстрирующий тета-соединение таблиц. Поэтому сконструируем такой надуманный запрос:

SELECT Вид_блюд.*, Трапезы.* FROM Вид_блюд, Трапезы WHERE Вид > Трапеза;

позволяющий выбрать из полученного в п.3.2.1 декартова произведения таблиц Вид_блюд и Трапезы лишь те строки, в которых значение трапезы "меньше" (по алфавиту) значения вида блюда

В Вид Т Трапеза
З Закуска   Завтрак
С Суп   Завтрак
С Суп   Обед
Н Напиток   Завтрак

Соединение таблиц с дополнительным условием.

При формировании соединения создается рабочая таблица, к которой применимы все операции, рассмотренные в главе 2: отбор нужных строк соединения (WHERE фраза), упорядочение получаемого результата (ORDER BY фраза) и агрегатирование данных (SQL-функции и GROUP BY фраза).

Например, для получения перечня блюд, предлагаемых в меню на завтрак, можно сформировать запрос на основе композиции (п. 3.2.4):

SELECT Вид, Блюдо, Основа, Выход, 'Номер -', БЛ FROM Меню, Трапезы, Вид_блюд, Блюда WHERE Меню.Т = Трапезы.Т AND Меню.В = Вид_блюд.В AND Меню.БЛ = Блюда.БЛ AND Трапеза = ’Завтрак’;

Получим

Вид Блюдо Основа Выход 'Номер -' БЛ
Закуска Салат витаминный Овощи 200. Номер -  
Закуска Мясо с гарниром Мясо 250. Номер -  
Горячее Омлет с луком Яйца 200. Номер -  
Горячее Пудинг рисовый Крупа 160. Номер -  
Напиток Молочный напиток Молоко 200. Номер -  
Напиток Кофе черный Кофе 100. Номер -  

В п.3.6 можно познакомиться с достаточно полным примером соединения таблиц с различными дополнительными фразами.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: