为两个表选择SQL Query?

时间:2014-02-18 07:35:23

标签: mysql sql join

我有两张桌子

表A:内容问题,其选项和正确答案

表B:此表用于在给定时间内回答问题的时间。 此表具有Question_Id字段,该字段具有问题ID或零。零意味着如果对于表A在表B中未找到问题Id,那么默认时间将是表B的Question_Id = 0> 5分钟

现在我想从查询中获取像Result表这样的数据。通过使用选择查询与加入我得到问题详细信息,其与问题ID(1,2,4)匹配的问题3,5,6行未在结果表中显示。

enter image description here

请建议应该写什么SQL查询,以便我可以获得结果表内容的结果。

2 个答案:

答案 0 :(得分:1)

我将表格更改为小而简单的表格,您可以在以下位置看到结果:

SQL Fiddle

或尝试此查询:

SELECT t1.questionid, 
       t1.question, 
       t1.options, 
       t1.answer, 
       COALESCE(t2.timingstatement, '5 Min') TimingStatement 
FROM   tablea t1 
       LEFT OUTER JOIN tableb t2 
                    ON t1.questionid = t2.questionid; 

答案 1 :(得分:0)

试试这个

SELECT Q.QuestionID,Q.Question,Q.Options,QAnswer,
       CASE WHEN Q.QuestionID NOT IN (SELECT QuestionID FROM Table2) THEN '5 Min'
            ELSE T.TimingStatement
       END [TimingStatement]
FROM Table1 Q
JOIN Table2 T ON Q.QuestionID = T.QuestionID