-3

我有一个像这样的查询:

SELECT coc.title, inc.name FROM cocktail coc, ingredients inc WHERE coc.id = 1...  

此查询只是一个简短的示例

结果是:
标题:自由古巴,配料名称:可乐
标题:自由古巴,配料名称:朗姆酒
标题:自由古巴,配料名称:Limette
我得到了 3 次标题,因为这种鸡尾酒有 3 个增量。
如果我使用这样的结果集,我会得到 3 倍的标题作为标题。

但我想要:
标题:Cuba Libre,成分名称:可乐
成分名称:朗姆酒
成分名称:石灰
我希望在我的结果集中只有一次标题和所有成分。

我有可能在一个查询中执行此操作,还是我必须在之后仅针对成分执行另一个请求?

4

1 回答 1

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

请参阅带有演示的 SQL Fiddle

于 2012-09-11T15:16:44.473 回答