У меня есть запрос вроде:
SELECT coc.title, inc.name FROM cocktail coc, ingredients inc WHERE coc.id = 1...
Этот запрос является лишь кратким примером
И результат:
Название: Куба Либре, Имя ингридиента: Cola
Название: Куба Либре, Ингредиент Название: Ром
Название: Куба Либре, название ингредиента: Limette
Я получаю 3 раза титул, потому что этот коктейль имеет 3 невероятных.
Если я использую набор результатов, подобный этому, я получаю в 3 раза заголовок заголовка.
Но я хочу:
Название: Куба Либре, Имя ингридиента: Cola
Название ингредиента: Ром
Название ингредиента: лайм
Я хотел бы иметь только один раз название и все ингредиенты в моем результирующем наборе.
У меня есть возможность сделать это в одном запросе или мне нужно выполнить другой запрос после этого только для ингредиентов?
Если вам нужны элементы в одной строке, вы можете использовать GROUP_CONCAT()
:
select c.c_name, group_concat(i.i_name) ingre
from cocktail c
inner join ingredients i
on c.id = i.c_id
where c.id = 1
group by c.c_name