Mysql 为两个表选择SQL查询?

Mysql 为两个表选择SQL查询?,mysql,sql,join,Mysql,Sql,Join,我有两张桌子 表A:内容问题、选项和正确答案 表B:此表用于在给定时间内回答问题的时间。 此表具有问题Id字段,该字段具有问题Id或为零。零表示如果在表B中找不到表A的问题Id,则默认时间为表B的问题Id=0>5分钟 现在,我需要查询的结果表之类的数据。通过使用Select Query with Join,我得到了问题的详细信息,这些信息与问题Id(1,2,4)匹配,表示问题3,5,6行没有显示在结果表中 请建议sql查询应该编写什么,这样我就可以得到类似结果表内容的结果。试试这个 SELEC

我有两张桌子

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

表B:此表用于在给定时间内回答问题的时间。 此表具有问题Id字段,该字段具有问题Id或为零。零表示如果在表B中找不到表A的问题Id,则默认时间为表B的问题Id=0>5分钟

现在,我需要查询的结果表之类的数据。通过使用Select Query with Join,我得到了问题的详细信息,这些信息与问题Id(1,2,4)匹配,表示问题3,5,6行没有显示在结果表中

请建议sql查询应该编写什么,这样我就可以得到类似结果表内容的结果。

试试这个

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

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

或者尝试以下查询:

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; 

很抱歉,这没有回答您的问题,但表B看起来多余。为什么不直接将计时语句添加到表A中呢?当rep>1000时,您应该知道您需要显示您所做的尝试。此外,您的数据不一致。B中没有问题ID 3、5和6的行,因此如果给定其他两行,结果表是不可能的。当我们应用Q.QuestionID=T.QuestionID时,它不会列出3、4、6。您可以使用外部连接右键??