Если из декартова произведения убрать ненужные строки и столбцы, то можно получить актуальные таблицы, соответствующие любому из соединений.
| Меню
| Трапезы
| Вид_блюд
| Блюда
|
| Т
| В
| БЛ
| Т
| Трапеза
| В
| Вид
| БЛ
| Блюдо
| В
| Основа
| Выход
| Труд
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат летний
| З
| Овощи
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат мясной
| З
| Мясо
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат витаминный
| З
| Овощи
| 200.
| 4 *
|
| . . .
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Суп молочный
| С
| Молоко
| 500.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Бастурма
| Г
| Мясо
| 300.
|
|
| . . .
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Кофе черный
| Н
| Кофе
| 100.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Кофе на молоке
| Н
| Кофе
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат летний
| З
| Овощи
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат мясной
| З
| Мясо
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат витаминный
| З
| Овощи
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат рыбный
| З
| Рыба
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Паштет из рыбы
| З
| Рыба
| 120.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Мясо с гарниром
| З
| Мясо
| 250.
| 3 *
|
| . . .
|
Рис. 3.1. Иллюстрация декартова произведения
Очевидно, что отбор актуальных строк обеспечивается вводом в запрос WHERE фразы, в которой устанавливается соответствие между:
- кодами трапез (Т) в таблицах Меню и Трапезы (Меню.Т = Трапезы.Т),
- кодами видов блюд (В) в таблицах Меню и Вид_блюд (Меню.В = Вид_блюд.В),
- номерами блюд (БЛ) в таблицах Меню и Блюда (Меню.БЛ = Блюда.БЛ).
Такой скорректированный запрос
SELECT Меню.*, Трапезы.*, Вид_блюд.*, Блюда.*
FROM Меню, Трапезы, Вид_блюд, Блюда
WHERE Меню.Т = Трапезы.Т
AND Меню.В = Вид_блюд.В
AND Меню.БЛ = Блюда.БЛ;
позволит получить эквисоединение таблиц Меню, Трапезы, Вид_блюд и Блюда:
| Т
| В
| БЛ
| Т
| Трапеза
| В
| Вид
| БЛ
| Блюдо
| В
| Основа
| Выход
| Труд
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Салат витаминный
| З
| Овощи
| 200.
|
|
|
| З
|
|
| Завтрак
| З
| Закуска
|
| Мясо с гарниром
| З
| Мясо
| 250.
|
|
|
| Г
|
|
| Завтрак
| Г
| Горячее
|
| Омлет с луком
| Г
| Яйца
| 200.
|
|
| . . .
|
|
|
| Г
|
|
| Ужин
| Г
| Горячее
|
| Драчена
| Г
| Яйца
| 180.
|
|
|
| Н
|
|
| Ужин
| Н
| Напиток
|
| Компот
| Н
| Фрукты
| 200.
|
|
|
| Н
|
|
| Ужин
| Н
| Напиток
|
| Молочный напиток
| Н
| Молоко
| 200.
|
|