我的查询类似于:
SELECT coc.title, inc.name FROM cocktail coc, ingredients inc WHERE coc.id = 1...
此查询只是一个简短的例子
结果是:
标题:Cuba Libre,成分名称:可乐
标题:Cuba Libre,成分名称:Rum
标题:Cuba Libre,成分名称:Limette
我获得3次冠军,因为这种鸡尾酒有3个令人难以置信的
如果我使用这样的结果集,我会得到标题的3倍作为标题。
但我想:
标题:Cuba Libre,成分名称:可乐
成分名称:朗姆酒
成分名称:青柠
我想在结果集中只有一次标题和所有成分。
我有可能在一个查询中执行此操作,或者之后我是否必须执行另一个请求才能获取成分?
答案 0 :(得分:3)
如果您想要同一行中的项目,则可以使用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