私はこれに非常に似た問題を抱えています: MySQLエンティティ-属性-値スキーマ
またはこれ
をピボットする方法SQLを介した組み合わせの列挙
私は2つのテーブルを持っています:
バリエーション
ID | item_id | name
=================================
1 | 1 | color
2 | 1 | size
3 | 1 | material
4 | 1 | lenght
==================================
バリエーションデータ
ID | variation_id | value
=================================
1 | 1 | red
2 | 1 | white
3 | 1 | black
4 | 2 | s
5 | 2 | m
6 | 3 | cotton
7 | 4 | 100
==================================
名前と値はユーザー入力です。
アイテムごとに最大4つのバリエーションがあり、バリエーションごとにn個の値があります。
いくつかのテストデータ
CREATE TABLE variations ( id int PRIMARY KEY, item_id int, name varchar(50));
INSERT INTO variations (id, item_id, name)
VALUES (1, 1, 'color'),
(2, 1, 'size'),
(3, 1, 'material'),
(4, 1, 'length');
CREATE TABLE variation_data ( id int PRIMARY KEY, variation_id int, val varchar(50));
INSERT INTO variation_data (id, variation_id, value) VALUES
(1, 1, 'red'),
(2, 1, 'white'),
(3, 1, 'black'),
(4, 2, 's'),
(5, 2, 'm'),
(6, 3, 'cotton'),
(7, 4, '100');
望ましい結果:
red S cotton 100
red M cotton 100
white S cotton 100
white M cotton 100
black S cotton 100
black M cotton 100
残念ながら、私はこの問題を解決することができません。
ヒントを教えていただければ幸いです。
ご協力ありがとうございました!