2011-11-22 11 views
0

2つのテーブルがあるとします。
名前はバスケット、
という名前のフルーツです。MySQLのスコープと派生テーブル

Baskets-
basket_id、basket_name
1 - バスケットつ
2 - バスケットつ

Fruits-
fruit_id、basket_id、fruit_name
1 - 1 - バナナ
2 - 1 - アップル
3 - 2 - 梨

SELECT * FROM baskets
JOIN (SELECT GROUP_CONCAT(fruit_id SEPARATOR ', ') FROM fruits WHERE baskets.basket_id=fruits.basket_id) AS der_fruits
ON baskets.basket_id=der_fruits.basket_id

このクエリでは、果物のIDのリストを2行(2つのバスケットがあるため)取得したいと考えています。このよう


basket_id、果物
1から1、2
2から3

しかし、今、私は何を得るこれです:
basket_id、果物
2から1、2、 3

問題は、DERIVEDテーブルのグローバルbaskets.basket_id値を渡す必要があることです。 MySQLにグローバルスコープのようなものはありますか?
派生テーブル内の変数にグローバルbaskets.basket_id値を渡す方法はありますか?

答えて

0
SELECT baskets.*, 
     (SELECT GROUP_CONCAT(fruits.fruit_name) 
     FROM fruits f 
     WHERE b.basket_id = f.basket_id) AS der_baskets 
FROM baskets b 

果物はサブクエリです。私はあなたが関係を2回定義する理由を理解していません。あなたがしようとしていることはありますか?私は理解していませんか?

+0

私がしようとしていることは、ソーシャルネットワーキングサイトのホームページを作成して、各フィードのコメントと各フィードの好きなユーザーのコメントを表示したいということです。私は、それぞれのフィードに適切なコメントを付けて、すべてのフィードをリストすることができました。私は各コメントや好きなものを得るために100回程行くつもりはないので、私がやっていることは1つの大きな質問ですべての情報を得ることです。今私は2つのクエリでそれをやった。 Btw。あなたの反応に感謝します。 –