- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アンケート結果を抽出するSQL文について)
アンケート結果を抽出するSQL文について
このQ&Aのポイント
- SQLの抽出方法について質問です。会員テーブルと果物と色の好みを管理するテーブルがあり、抽出条件も複数選択できる場合、効率的なSQLを作成する方法を知りたいです。
- テーブル【MEMBER】と【MEMBER_FRUIT】、【MEMBER_COLOR】で会員の果物と色の好みを管理しています。抽出条件を管理するテーブル【SEARCH】と【SEARCH_DETAIL】もあります。ループ処理ではなく、より効率的なSQLを教えてください。
- テーブル【MEMBER】と【MEMBER_FRUIT】、【MEMBER_COLOR】で会員の果物と色の好みを管理しており、【SEARCH】と【SEARCH_DETAIL】で抽出条件を管理しています。アンケートの数だけSQLを追加する方法ではなく、効率的なSQLを教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
先に提示したテーブルは基本情報です 会員が選択した情報が無いのですが、どうでしょうか? 回答テーブル 会員ID アンケートID 選択枝ID これで、回答テーブルと、会員テーブル、アンケートテーブル、アンケート選択枝テーブルをリレーションすればよいです なお、メリットは?ということですが 新たな質問が出た時に、いちいちテーブルを作成する必要がなく テーブルにデータを格納すればOKです
その他の回答 (1)
- gau_puzzler
- ベストアンサー率48% (39/81)
回答No.1
アンケートの種類だけテーブルを作成するという考えが間違っていると思います (非常に面倒くさくないですか?) 会員テーブル ID 氏名 1 斎藤 2 佐藤 3 田中 アンケートテーブル ID アンケート内容 1 好きなくだものは 2 好きな色は アンケート選択枝テーブル ID 選択名 1 リンゴ 2 みかん 3 メロン 4 白 5 赤 アンケート質問選択枝テーブル アンケートID 選択枝ID 1 1 1 2 1 3 2 4 2 5 はい、このテーブルで考えてみて下さい
補足
ご指導ありがとうございます。 >アンケートの種類だけテーブルを作成するという考えが間違っていると思います そうですか... アンケートの件数は3,4件と考えています。 SELECT A.ID,A.氏名 FROM 会員テーブル AS A,アンケート質問選択枝テーブル AS B WHERE B.アンケートID=1 このテーブル構成でSELECT文作成がよくわかりません。 すみません。このテーブル構成だとどのようなメリットが あるのでしょうか?