私は MySQL の第一人者ではありませんが、基本的なことはかなりうまくやっています。ご意見をいただきありがとうございます。
私は2つのテーブルuser
とfavorite
. 各ユーザーは、複数の固有のお気に入りを持つことができます。
テーブル ユーザー u
[ user_id + name ]
100 | Sally
テーブル お気に入り お気に入り
[ fav_id + user_id + fav_key + fav_val ]
1 | 100 | icecream | mint
2 | 100 | candybar | snickers
3 | 100 | color | red
値を列ヘッダーとしてSELECT
使用して、ユーザーのお気に入りを列に変換するステートメントを作成したいと考えています。fav_key
*問題は、これらはユーザーが入力した値であるため、値がどうなるかがわからないfav_val
ため、列名を動的に生成する必要があることです。
選択する ...
[ user_id + name + fav_icecream + fav_candybar + fav_color ]
100 | Sally | mint | snickers | red
SELECT
パフォーマンスの遠い考えを念頭に置いて - 問題の 1 つは、ユーザー データとユーザーのお気に入りを取得するために2 つのステートメントを実行したくないことです(さらに、このように列に動的に名前を付けるというアイデアが好きです) .
アップデート
したがって、これはピボット、エクセレントと呼ばれます。
値がわからない場合はどうすればよいですか? お気に入りのクエリから列を動的に生成する必要があります。