次の構造を持つ3つの異なるテーブルがあります。
食べ物
ID | title
---+----------
1  | sandwich
2  | spaghetti
成分
ID  | food_reference | type | location | bought
----+----------------+------+----------+----------
100 | 1              | ham  | storeA   | 11-1-2013
101 | 1              | jam  | storeB   | 11-1-2013
102 | 2              | tuna | storeB   | 11-6-2013
タグ
ID  | food_reference | tag 
----+----------------+-----
1000| 1              | Tag
1001| 1              | Tag2  
1002| 2              | fish 
そして、1 つの選択を使用して、1 つの特定の ID について、これら 3 つのテーブル (タイトル、タイプ、場所、購入、タグ) からすべての情報を取得したいと考えています。私は次のようなことを試しました
SELECT food.*,ingridients.*,tags.* FROM food  
            JOIN ingridients
                ON :id=ingridients.food_reference
            JOIN tags
                ON :id=tags.food_reference
            WHERE id=:id
しかし、このクエリは id=1 に対して ingridients と tags から 1 行のみを返しますが、2 つの一致する行 (ham と jam、Tag と Tag2) があります。私が間違っていることを教えていただけますか?
編集: LolCoder のソリューションを試しましたが、フィドルでは機能しているように見えますが、まだ 1 つの結果しか得られませんでした。しかし、私は試しました:
 SELECT F.*, group_concat(I.type), group_concat(I.location), 
   group_concat(I.bought), group_concat(T.tag) 
 FROM feeds F 
 INNER JOIN ingridients I 
   ON :id = I.food_reference
 INNER JOIN tags T
   ON :id=T.food_reference
 WHERE F.id=:id 
これはすべての一致する行からデータを検索しますが、数回、つまり (id=1 の場合) サンドイッチ、ハム、ハム、ハム、ジャム、ジャム、ジャム、タグ、タグ、タグ、タグ 2、タグ 2、タグ 2 を取得します。
EDIT2:魔法が起こり、LolCoderのソリューションが機能するので、ありがとう:-)