我有一张表格,记录每年多次回答的问题的答案。 该表格包含用户 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 ,但我需要在他们自己的专栏中找到答案。