我有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
问题解答(_A):
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
筛选所有这些内容吗?这样我就可以知道哪些问题属于哪个type_id
?
1条答案
按热度按时间xxhby3vn1#
您将需要使用连接,否则您将得到一个问题而没有答案。下面的查询如下所示,选择type_id为1的问题
但是,您仍然可以将WHERE子句添加到当前语句中,这将过滤数据。下面的示例将再次获得所有问答,其中type_id为1