【发布时间】:2022-12-18 18:23:58
【问题描述】:
我有 3 个表 questions、answers 和 questions_answers:
问题:
id | question | type_id
1 | Q1 | 1
2 | Q2 | 3
3 | Q3 | 1
4 | Q4 | 2
答案:
id | answer
1 | A1
2 | A2
3 | A3
问题和答案:
id | question_id | answer_id
1 | 1 | 1
2 | 2 | 3
3 | 3 | 1
我想获取所有问题并使用 type_id 对它们进行分组。
此查询对所有问题进行分组,但不知道哪个问题属于哪种类型:
SELECT GROUP_CONCAT(q.question, a.answer) FROM questions q
JOIN questions_answers qa ON qa.question_id = q.id
JOIN answers a ON qa.answer_id = a.id
GROUP BY q.id
是否可以按类型过滤问题而无需多次连接到 questions 表?
输出是我可以通过type_id过滤得到每个问题的东西,即:
question | answer
Q1 | A1
Q3 | A1
这是给type_id = 1 的。我可以像那样通过type_id 过滤所有这些吗?所以我可以知道 whci 问题属于哪个type_id?
【问题讨论】:
-
发布示例数据和预期结果以阐明您想要什么。
-
您要按
type_id过滤它们还是按type_id对它们进行分组?这不是一回事,你在问题中都说了。 -
你可以使用
GROUP BY q.id, q.type_id -
我更新了描述希望它能解释我所寻求的
-
我想获得按
type_id分组的问题和答案,这样我就可以在一个部分中显示type_id =1的问题,然后在另一个部分中仅显示type_id = 1的问题