2

我有两个表
问题表如下表
问题内容 和答案表如下
在此处输入图像描述
每个问题都有多个答案
如何进行查询以返回下表的结果
在此处输入图像描述

4

2 回答 2

3

您必须按两列排序 -q_idans_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
于 2013-07-07T05:39:19.200 回答
-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
于 2013-07-07T05:11:05.320 回答