以下のようなスキーマにおいて、
sql
1CREATE TABLE `orders` ( 2 `id` bigint(20) NOT NULL AUTO_INCREMENT, 3 `code` varchar(255) NOT NULL, 4 PRIMARY KEY (`id`) 5); 6CREATE TABLE `order_products` ( 7 `id` bigint(20) NOT NULL AUTO_INCREMENT, 8 `order_id` bigint(20) NOT NULL, 9 `name` varchar(255) NOT NULL, 10 PRIMARY KEY (`id`), 11 CONSTRAINT `fk_orders` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) 12);
以下のようなデータが入っているときに、
sql
1INSERT INTO orders (id, code) VALUES(1, 'aaa'); 2INSERT INTO order_products (id, order_id, name) VALUES(1, 1, 'product a'); 3INSERT INTO order_products (id, order_id, name) VALUES(2, 1, 'product b'); 4INSERT INTO order_products (id, order_id, name) VALUES(3, 1, 'product c'); 5 6> select * from orders; 7+----+------+ 8| id | code | 9+----+------+ 10| 1 | aaa | 11+----+------+ 12 13> select * from order_products; 14+----+----------+-----------+ 15| id | order_id | name | 16+----+----------+-----------+ 17| 1 | 1 | product a | 18| 2 | 1 | product b | 19| 3 | 1 | product c | 20+----+----------+-----------+ 21
以下のように子テーブルを非正規化して、親のレコード1行に対して子供のとあるカラムを非正規化して抽出することは可能でしょうか?
sql
1+----+------+---------------------------------+ 2| id | code | denormalization | 3+----+------+---------------------------------+ 4| 1 | aaa | product a, product b, product c | 5+----+------+---------------------------------+
変な要求かもしれませんが、親のレコード単位で集計しつつ、子供の値も予備情報として出力したいです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/01 00:22 編集
2020/05/01 01:23