0

私は次のような状況にあります。

組み合わせテーブル:
Combination ID | Option ID's

オプションテーブル:組み合わせテーブル
Option ID | Option Name | Option Value

の「オプションID」列は、組み合わせに関連付けられた2つのオプションを参照すると、「2345,3421」(1列)のように表示されます。

すべての可能な組み合わせと各組み合わせの値をリストするリストを生成することは可能ですか?

すなわち。combination1 | option1 | name:size | value:Small | option2 | name:color | value:Blue

4

1 に答える 1

1

このようなクエリを試すことができます-

SELECT
  c.Combination_ID, GROUP_CONCAT(CONCAT(o.Option_Name, '=', o.Option_Value))
FROM
  combinations c
LEFT JOIN options o
  ON find_in_set(o.Option_ID, c.Option_IDs)
GROUP BY
  c.Combination_ID

テーブルの正規化についてIanMcLairdに同意します。


SELECT
  c.Combination_ID,
  GROUP_CONCAT(o.Option_Name),
  GROUP_CONCAT(o.Option_Value)
FROM
  combinations c
LEFT JOIN options o
  ON find_in_set(o.Option_ID, c.Option_IDs)
GROUP BY
  c.Combination_ID
于 2012-05-21T06:47:13.443 に答える