以下のようなuserテーブルとuser_itemテーブルがあります。
mysql
1/* ユーザテーブル */ 2CREATE Table user ( 3 id SERIAL PRIMARY KEY COMMENT 'ID', 4 email VARCHAR(255) NOT NULL COMMENT 'メールアドレス', 5 password VARCHAR(255) NOT NULL COMMENT 'パスワード', 6 name VARCHAR(255) NOT NULL COMMENT '名前' 7); 8 9/* ユーザのアイテムテーブル */ 10CREATE Table user_item ( 11 user_id BIGINT UNSIGNED NOT NULL COMMENT 'ユーザID', 12 name VARCHAR(255) NOT NULL COMMENT 'アイテム名' 13);
アプリケーションが1ユーザのすべての情報を取得したい場合に1回のクエリですべてのデータを取得することはできますか?
userテーブルは1レコード1ユーザという構造になっていますが、user_itemテーブルは1レコード1ユーザではなく、user_idの値が同一のレコードの数だけ1ユーザのデータとなります。
つまり、単数のレコードと複数のレコードの結果を強制的にjoinして結果を受け取ることはできるのでしょうか?
MySQL5.7から実装されたJSON型を利用すればuser_itemの複数行の結果をuserテーブルのレコードのカラムに格納して受け取ることができるのではないのかと考えたのですが、このような考え方は無理がありますか?
また、その考え方が誤っていない場合、select分を使って得た結果をJSONに変換するにはどうすれば良いでしょうか?
ご意見お待ちしております。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/08 09:10 編集
退会済みユーザー
2016/12/08 09:10
2016/12/08 09:20
退会済みユーザー
2016/12/08 09:26
2016/12/08 09:31