Для исключения всех столбцов, по которым проводится соединение таблиц, надо создать композицию
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 можно познакомиться с достаточно полным примером соединения таблиц с различными дополнительными фразами.