Mysql从多个行(问题)回答每个孩子一行

时间:2016-04-08 14:30:28

标签: mysql

我有一张表格,记录每年多次回答的问题的答案。 该表格包含用户 ID 的列,他们提出问题的年份,他们提出问题的月份,主题和问题编号

ID  | Year | Month | Subject | Q number| Answer |
-------------------------------------------------
1   | 2016 | 01    |  01     | 1       | Yes    |
1   | 2016 | 01    |  01     | 2       | Yes    |
1   | 2016 | 01    |  01     | 3       | no     |
1   | 2016 | 01    |  02     | 1       | Yes    |
1   | 2016 | 01    |  02     | 1       | Yes    |
1   | 2016 | 01    |  02     | 1       | Yes    |
1   | 2016 | 02    |  01     | 1       | Yes    |
1   | 2016 | 02    |  01     | 1       | Yes    |
1   | 2016 | 02    |  01     | 2       | Yes    |
1   | 2016 | 02    |  01     | 3       | Yes    |
1   | 2016 | 02    |  02     | 1       | Yes    |
1   | 2016 | 02    |  02     | 1       | Yes    |
1   | 2016 | 02    |  02     | 1       | Yes    |
2   | 2016 | 01    |  01     | 1       | Yes    |
2   | 2016 | 01    |  01     | 2       | no     |
2   | 2016 | 01    |  01     | 3       | no     |etc

我想创建一个返回每个用户一行的查询,并为每个答案添加一列。

ID | 2016-01_sub01_Q01 | 2016-01_sub01_Q02 | 2016-01_sub01_Q03 | etc
----------------------------------------------------------------------
1  | yes               | yes               | no                |  etc  
2  | yes               | no                | no                |  etc  

我已尝试将多个左连接添加到每个答案的匹配结果表中,但查询仍在运行,而且只有2个主题(13个以上)和每个主题9个qs

select u.userid, 
    Y2016_Mon2_Sub01_Q1.answer,
    Y2016_Mon2_Sub01_Q2.answer,
    Y2016_Mon2_Sub01_Q3.answer,

from users u 
left join answers Y2016_Mon2_Sub01_Q1 on ( 
            answers.userid = users.userid 
            and Y2016_Mon2_Sub01_Q1.year = 2016 
            and Y2016_Mon2_Sub01_Q1.mon = 02 
            and Y2016_Mon2_Sub01_Q1.sub = 01 
            and Y2016_Mon2_Sub01_Q1.question = 1) 
left join answers Y2016_Mon2_Sub01_Q2 on ( 
            answers.userid = users.userid 
            and Y2016_Mon2_Sub01_Q1.year = 2016 
            and Y2016_Mon2_Sub01_Q1.mon = 02 
            and Y2016_Mon2_Sub01_Q1.sub = 01 
            and Y2016_Mon2_Sub01_Q1.question = 2) 
etc

但正如你可以想象的那样,成为一个需要管理的问题,并且考虑到所有主题和问题,我最终会加入100个联盟。我已尝试将多个结果搜索到一行但尚未找到任何内容......任何线索/示例都表示赞赏。我一直在寻找 group_concat ,但我需要在他们自己的专栏中找到答案。

0 个答案:

没有答案