Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

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

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

Меню Трапезы Вид_блюд Блюда
ТВБЛТТрапезаВВидБЛБлюдоВОсноваВыходТруд
1З31ЗавтракЗЗакуска1Салат летнийЗОвощи200.3
1З31ЗавтракЗЗакуска2Салат мяснойЗМясо200.4
1З31ЗавтракЗЗакуска3Салат витаминныйЗОвощи200.4 *
. . .
1З31ЗавтракЗЗакуска12Суп молочныйСМолоко500.3
1З31ЗавтракЗЗакуска13БастурмаГМясо300.5
. . .
1З31ЗавтракЗЗакуска32Кофе черныйНКофе100.1
1З31ЗавтракЗЗакуска33Кофе на молокеНКофе200.2
1З61ЗавтракЗЗакуска1Салат летнийЗОвощи200.3
1З61ЗавтракЗЗакуска2Салат мяснойЗМясо200.4
1З61ЗавтракЗЗакуска3Салат витаминныйЗОвощи200.4
1З61ЗавтракЗЗакуска4Салат рыбныйЗРыба200.4
1З61ЗавтракЗЗакуска5Паштет из рыбыЗРыба120.5
1З61ЗавтракЗЗакуска6Мясо с гарниромЗМясо250.3 *
. . .

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

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

  • кодами трапез (Т) в таблицах Меню и Трапезы (Меню.Т = Трапезы.Т),
  • кодами видов блюд (В) в таблицах Меню и Вид_блюд (Меню.В = Вид_блюд.В),
  • номерами блюд (БЛ) в таблицах Меню и Блюда (Меню.БЛ = Блюда.БЛ).

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

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

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

ТВБЛТТрапезаВВидБЛБлюдоВОсноваВыход Труд
1З31ЗавтракЗЗакуска3Салат витаминныйЗОвощи200.4
1З61ЗавтракЗЗакуска6Мясо с гарниромЗМясо250.3
1Г191ЗавтракГГорячее19Омлет с лукомГЯйца200.5
. . .
3Г163УжинГГорячее16ДраченаГЯйца180.4
3Н303УжинННапиток30КомпотНФрукты200.2
3Н313УжинННапиток31Молочный напитокНМолоко200.2

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

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...