Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.02.2016
Сообщений: 1
1

Запросы с join-ом по двум полям

03.02.2016, 20:54. Показов 1534. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, все.
Появилась непростая на мой взгляд задача. Попробую описать. Пример абстрагирован и отношения к реальности не имеет. В реальности все немного более запутано, но проблему я попытался объяснить на более понятно примере.
У нас есть таблицы:
Clients (id,name) Заполнено данными (1,Вася;2,Петя)
Drinks (id,name) Заполнено данными (1,Пиво; 2,Водка; 3,Кофе)
Tables (id,name) Заполнено данными (1, "У двери"; 2,"У окна";3,"В центре")

И вспомогательные таблицы
client_drink (id,id_client,id_drink)(заполняет бармен) и client_table((id,id_client,id_table)) (заполняет охрана в зале)

Процесс выглядит так: Клиент Петя подходит в бар, берет пиво, водку и кофе.
Бармен в таблице client_drink создает три записи с полями id, id_client,id_drink:
1;2;1
2;2;2
3;2;3
Затем клиент идет в зал и занимает два столика у двери и в центре
Охрана в таблице client_table делает две записи с полями (id,id_client,id_table)
1;2;1
2;2;3

Пока все просто. Но тут появляется официант
Ему надо отметить за каким столиком какой напиток выпивает клиент. Для этого у него есть спецтаблица client_table_drink, которая состоит из двух колонок: id_client_table (номер записи в таблице охраны) и id_client_drink (номер записи в таблице бармена)
Он вносит туда три значения.
1,1
1,2
2,3
Из которой понятно, что клиент выпил за столиком номер 1 два заказа, а за третим столиком - третий заказ. То есть в этой таблице указываются не айди напитка, столика и клиента, а номер связи в таблице бармена плюс номер связи в таблице охраны.

Вопрос. Можно ли зная номер столика и айди клиента вытащить номера напитков, которые он выпил за этим столом?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2016, 20:54
Ответы с готовыми решениями:

Запросы RIGHT JOIN и LEFT JOIN в чём различие?
Добрый день! Чем отличаются запросы RIGHT JOIN и LEFT JOIN, если они выдают один и тот же результат?

JOIN по неуникальным полям
Кто знает, 30-я задача из sql-ex Есть 2 таблицы: Приход и Расход. Столбцы таблицы Приход:...

Групировка по двум полям
Привет всем! Есть таблица table в ней есть два поля type1 и type2 (и еще несколько) Как...

Сортировка по двум полям
Помогите разобраться с сортировкой. Есть несколько продуктов в таблице: id rating ...

0
03.02.2016, 20:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2016, 20:54
Помогаю со студенческими работами здесь

Сортировка по двум полям
Есть таблица с полями name,date,score Нужно вывести отсортированные 15 последних записей по...

Уникальный индекс по двум полям
есть уникальный индекс по двум полям. Нужно ли отдельно индексировать поле входящее в этот индекс,...

Подключение таблицы к двум полям
Здравствуйте обитатели форума. Пришел просить вашей помощи. В настоящее время изучаю работу с...

Как задать уникальность по двум полям
есть поля 1 - id (ид) 2 - id_user (ид пользователя) 3 - date_r (дата) как сделать так чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru