mysql数据库中有3个表:
-问题(id、内容)
-答案(id、内容、问题),其中问题是一个外键,告诉我们答案与哪个问题相关
-调查(survey\u id,answer),其中调查id对于接受调查的一个人是唯一的,并且答案表示他给出的答案。
现在我想写一个查询,显示一个表,其中包含接受调查的人的id以及他在不同列中给出的所有答案。
我的问题是:
select survey.survey_id,
CASE WHEN answers.question = 1
then answers.content
end
as 'Question 1',
CASE WHEN answers.question = 2
then answers.content
end
as 'Question 2'
from survey inner join answers on survey.answer_id = answers.id;
但我不认为这是一种方式去,我得到什么是显示在图片上(与空)
现在我想得到的是:
正确的方法是什么?
2条答案
按热度按时间wlzqhblo1#
使用条件聚合:
笔记:
所有表都有别名。
所有列都是限定的,这意味着它们明确地指定了它们来自的表。
仅对字符串和日期常量使用单引号。不要对表别名使用单引号。
pexxcrt22#
您可以使用(假)聚合函数来减少行数,例如: