我有一张桌子可以举行考试;另一张持有考试答案的表格。
我想开发一个查询,列出考试题目,以及每个考试最常见的答案。
问题表的相关部分如下:
name question_text
ex1_qs1 1. What is furry and has four legs?
ex1_qs2 2. What is hairless and has two legs?
回复表的相关部分如下:
session_id ex1_qs1 ex1_qs2
123456789 cat man
112233445 dog woman
111222333 dog woman
我知道我可以得到这样的问题清单:
Select name, question_text
From questions
Order By LENGTH(name), name
对于每个问题最常见的回答是这样的:
SELECT ex1_qs1
FROM responses
GROUP BY ex1_qs1
ORDER BY COUNT(*) DESC LIMIT 1
但是我没有看到如何将它们作为子查询放在一起,因为子查询所需的列名是来自主查询的值。我不能把它硬编码为一堆UNION。
我在下面使用什么而不是硬编码的“ex1_qs1”(因为我需要使用外部查询中“name”字段的值)?或者是否需要另一种方法?
Select name, question_text, (SELECT ex1_qs1 FROM responses GROUP BY ex1_qs1 ORDER BY COUNT(*) DESC LIMIT 1) as most_common_response
From questions
Order By LENGTH(name), name