0
私は、MySQLの行に動的な列から次のデータベーステーブルを変換したい:MySQLピボットテーブル - 動的列を行に変換する方法は?
は、私はすでにstackoverflow.comのと同様に、この偉大な例hereで深く見ていたが、例どれも私の要件と一致しません。
それは、動的だろう場合は、上記のリンクから示された例は私の要件に合っているでしょう(それが動的に変化するので、私は、値「色」または「サイズ」を知らない):
SELECT
item_id,
MAX(IF(property_name = 'color', value, NULL)) AS color,
MAX(IF(property_name = 'size', value, NULL)) AS size,
...
...
...
FROM
properties
GROUP BY
item_id;
だから、この私のデータベーステーブルです:
id | customer_id | customer_tbl_id | customer_tbl_col_name
1 | 1 | 1 | CustomerColName_1
2 | 1 | 1 | CustomerColName_2
3 | 1 | 1 | CustomerColName_3
4 | 1 | 2 | CustomerColName_4
5 | 1 | 2 | CustomerColName_5
6 | 2 | 1 | CustomerColName_6
7 | 2 | 1 | CustomerColName_7
今私のSQLクエリの結果は次のようにする必要があります:
1 (customer_id) | 1 (customer_tbl_id) | CustomerColName_1 | CustomerColName_2 | CustomerColName_3
1 (customer_id) | 2 (customer_tbl_id) | CustomerColName_4 | CustomerColName_5
2 (customer_id) | 1 (customer_tbl_id) | CustomerColName_6 | CustomerColName_7
。どうもありがとう。あなたは私に多くの時間を救った! – njlqay
2つのフィールドを結合するには:GROUP_CONCAT(DISTINCT concat(field1、 "、"、 "field2)) – tyro