我有两张桌子如下面的问题表
和答案表如下
每个问题都有多个答案
如何进行查询以返回结果如下表
答案 0 :(得分:3)
您必须按两列排序 - q_id
和ans_id
。由于在question_tb
中没有ans_id
字段,您可以改为0
。
select t.id, t.q_content from
(
select q_id, q_content, 0 k, q_id id from question_tb
union
select ans_q_id, ans_content, ans_id, ans_id from answer_tb
) t order by t.q_id, t.k
答案 1 :(得分:-1)
嗯..我想你需要重新思考一下你的结构:最后一个表(或查询结果)需要一个列来指定哪个是问题,哪个是答案,还要指出正确的回答。
此外,我假设每组问题(和答案)都与特定用户相关联,因此您还需要在答案表中使用user_key。
SELECT Q.q_content AS question,
ANS.ans_content AS answer,
ANS.is_correct,
ANS.user_id,
FROM Question_TB Q
INNER JOIN tb_answer ANS
ON ANS.ans_q_id = Q.q_id
ORDER BY ANS.user_id, Q.q_id