前提
中間テーブルを用いたDBの集計をしたいのですがどうやれば上手くいくのかわからないため質問させていただきます。投稿が慣れていないため、内容に間違いがあればご指摘ください。
DBはMySQLを使用しています。
テーブル構成は以下3つの通りです。
TABLE1(親テーブル)
1CREATE TABLE TABLE1 ( 2 user_id int primary key auto_incriment not null, 3 name varchar(10) not null 4);
EAT_LIST(食べ物番号一覧)
1CREATE TABLE EAT_LIST ( 2 eat_id int primary key auto_incriment not null, 3 eat_name varchar(30) not null 4); 5 6INSERT INTO EAT_LIST (eat_id, eat_name) VALUES 7(1, 'ラーメン'), 8(2, 'うどん'), 9(3, 'そば');
EAT_MID(食べ物番号の中間テーブル)
1CREATE TABLE EAT_MID ( 2 id int primary key auto_incriment not null, 3 user_id int not null, 4 eat_id int not null 5); 6 7INSERT INTO EAT_MID (eat_id, eat_name) VALUES 8(1, 1, 1), 9(2, 1, 2), 10(3, 2, 3), 11(4, 3, 1);
実現したいこと
以下のイメージでデータ集計がしたいです。
ユーザIDが1の人はEAT_MIDテーブルにラーメンとうどんのデータがあるので1を立てる。そばはないのでnullとする。
ユーザIDが2の人はそばに1、それ以外はnull
・・・のような感じです。
user_id | ラーメン | うどん | そば 1 | 1 |1 | null 2 | null | null | 1 3 | 1 | null | null
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/20 15:30
2022/07/21 01:13