Запрос из трех таблиц - MySQL (219704)
Формулировка задачи:
Приветствую всех.
Подскажите, никак не соображу.
Есть три таблицы.
item:
| id | groups_id | producer_id | name |
producer:
| id | name |
groups:
| id | parent_id | name |
Сейчас запрос выглядит так:
То есть выводим список производителей а в нем список групп, в которых представлены товары данного производителя.
Но у каждой группы есть родительская надгруппа.
Как переделать запрос что бы в производителях выводился список именно надгрупп?
SELECT DISTINCT producer.id, producer.name, groups.id, groups.name AS gname FROM producer, item, groups WHERE producer.id = item.producer_id AND item.groups_id = groups.id
Решение задачи: «Запрос из трех таблиц»
textual
Листинг программы
WHERE producer.id = item.producer_id AND item.groups_id = groups.id AND parents_group.id = groups.parent_id
Объяснение кода листинга программы
В представленном коде выполняется запрос к трём таблицам с условием объединения по идентификаторам. Код можно оформить в виде списка следующим образом:
WHERE
— условие, которое должно выполняться для строк, которые будут включены в результат запроса.producer.id
— идентификатор производителя, с которым связано множество товаров.item.producer_id
— идентификатор производителя, который связан с каждой товарной позицией.item.groups_id
— идентификатор группы, к которой принадлежит каждый товар.groups.id
— идентификатор группы, к которой принадлежит каждая товарная позиция.parents_group.id
— идентификатор родительской группы, к которой принадлежит каждая группа.groups.parent_id
— идентификатор родительской группы, который связан с каждым идентификатором группы. Код объединяет все эти идентификаторы в условие, которое возвращает только те строки, которые соответствуют товарам, производимым определённым производителем и принадлежащим определённой группе, имеющей определённого родителя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д