1

商品テーブルと価格テーブルがあり、商品に複数の価格行を含めることができます。productが製品IDと等しい各価格行の価格列を使用して、製品ごとに1つの行を返すJOINステートメントを実行することはできますか?

今私はこれを持っています:

SELECT PT.*, PR.* 
FROM `products` AS PT 
RIGHT JOIN `prices` PR 
    ON PR.`product` = PT.`ID`

また、1つの製品に4つの価格行がある場合、応答として4つの行を取得します。

4

1 に答える 1

4

wizzbang GROUP_CONCAT関数を検索します。この関数は、必要な処理を非常にうまく実行します(区切り文字で区切られた文字列を作成します)。

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

SELECT pt.`id`, 
       group_concat(pr.`price` separator ',') 
  FROM `products` AS PT  
  LEFT JOIN `prices` PR ON PR.`product` = PT.`ID`
  GROUP BY pt.`id`
于 2012-06-03T00:37:26.710 に答える