题目描述
运营团队希望查看所有来自 浙江大学 的用户在回答题目时的详细情况。具体要求是从 user_profile
表中筛选出属于浙江大学的用户,然后从 question_practice_detail
表中获取这些用户的所有答题记录。最终需要输出 device_id
、question_id
和 result
,并按照 question_id
升序排序。
SQL 查询
SELECT
qpd.device_id,
qpd.question_id,
qpd.result
FROM
question_practice_detail qpd
WHERE
qpd.device_id IN (
SELECT
up.device_id
FROM
user_profile up
WHERE
up.university = '浙江大学'
)
ORDER BY
qpd.question_id ASC;
代码解释
-
子查询部分:
SELECT up.device_id FROM user_profile up WHERE up.university = '浙江大学'
- 该子查询从
user_profile
表中筛选出所有university
为 "浙江大学" 的device_id
。
- 该子查询从
-
主查询部分:
SELECT qpd.device_id, qpd.question_id, qpd.result FROM question_practice_detail qpd WHERE qpd.device_id IN (子查询) ORDER BY qpd.question_id ASC;
- 从
question_practice_detail
表中选择device_id
、question_id
和result
。 - 使用
WHERE ... IN
过滤出device_id
属于子查询结果的记录。 - 最后使用
ORDER BY qpd.question_id ASC
按照question_id
升序排列结果。
- 从