3.2.2. Эквисоединение таблиц

Если из декартова произведения убрать ненужные строки и столбцы, то можно получить актуальные таблицы, соответствующие любому из соединений.

Меню Трапезы Вид_блюд Блюда
Т В БЛ Т Трапеза В Вид БЛ Блюдо В Основа Выход Труд
1 З 3 1 Завтрак З Закуска 1 Салат летний З Овощи 200. 3
1 З 3 1 Завтрак З Закуска 2 Салат мясной З Мясо 200. 4
1 З 3 1 Завтрак З Закуска 3 Салат витаминный З Овощи 200. 4 *
. . .
1 З 3 1 Завтрак З Закуска 12 Суп молочный С Молоко 500. 3
1 З 3 1 Завтрак З Закуска 13 Бастурма Г Мясо 300. 5
. . .
1 З 3 1 Завтрак З Закуска 32 Кофе черный Н Кофе 100. 1
1 З 3 1 Завтрак З Закуска 33 Кофе на молоке Н Кофе 200. 2
1 З 6 1 Завтрак З Закуска 1 Салат летний З Овощи 200. 3
1 З 6 1 Завтрак З Закуска 2 Салат мясной З Мясо 200. 4
1 З 6 1 Завтрак З Закуска 3 Салат витаминный З Овощи 200. 4
1 З 6 1 Завтрак З Закуска 4 Салат рыбный З Рыба 200. 4
1 З 6 1 Завтрак З Закуска 5 Паштет из рыбы З Рыба 120. 5
1 З 6 1 Завтрак З Закуска 6 Мясо с гарниром З Мясо 250. 3 *
. . .

Рис. 3.1. Иллюстрация декартова произведения

Очевидно, что отбор актуальных строк обеспечивается вводом в запрос WHERE фразы, в которой устанавливается соответствие между:

Такой скорректированный запрос

SELECT	Меню.*, Трапезы.*, Вид_блюд.*, Блюда.*
FROM	Меню, Трапезы, Вид_блюд, Блюда
WHERE	Меню.Т = Трапезы.Т
AND	Меню.В = Вид_блюд.В
AND	Меню.БЛ = Блюда.БЛ;

позволит получить эквисоединение таблиц Меню, Трапезы, Вид_блюд и Блюда:

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

3.2.1 | Содержание | 3.2.3

Используются технологии uCoz