-3

私は次のようなクエリを持っています:

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

このクエリはほんの短い例です

タイトル:
キューバリブレ、材料名:コーラ
タイトル:キューバリブレ、材料名:ラム酒
タイトル:キューバリブレ、材料名:リメット
このカクテルには3つの成分があるため、タイトルの3倍になります。
このような結果セットを使用すると、見出しの3倍のタイトルが表示されます。

しかし、私が欲しいのは:
タイトル:Cuba Libre、成分名:Cola
成分名:Rum
成分名:Lime
結果セットにタイトルとすべての成分を一度だけ入れたいと思います。

1つのクエリでこれを行う可能性はありますか、それとも材料のためだけに後で別のリクエストを実行する必要がありますか?

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 に答える