mysql连接表,即使结果为null也是如此

时间:2014-02-04 20:27:55

标签: mysql

我有一个包含3个表的mysql数据库:

case (caseID), question_nl (case, question) and question_fr (case, question)

question_nl和question_fr都与case相关联。现在我想执行一个suery来给我所有的情况,他们的代表值来自_nl或_fr。当两个表之一中没有条目时,会发生此问题。我想得到一个结果,即使问题是空的

例如:case 1有question_nl'AAA'和question_fr'BBB'。案例2还没有在_nl或_fr中设置任何问题。现在我想要一个输出caseID和问题的查询(如果没有设置,则为null),因此查询应该具有:

1 - AAA - BBB
2 - null - null

我怎样才能做到这一点?

SELECT C.caseId, N.question, F.question
FROM cases C JOIN
     question_nl N 
     ON N.case = C.caseID JOIN 
     question_fr F
     ON F.case = C.caseID

这不起作用......

一些帮助会非常好!

更新:如果我必须在_nl或_fr上添加WHERE-clausule怎么办?

2 个答案:

答案 0 :(得分:0)

改为使用LEFT JOIN

SELECT C.caseId, N.question, F.question
FROM cases C 
LEFT JOIN question_nl N ON N.case = C.caseID 
LEFT JOIN question_fr F ON F.case = C.caseID

答案 1 :(得分:0)

使用LEFT JOIN:

    SELECT C.caseId
         , N.question
         , F.question 
    FROM cases C 
    LEFT JOIN question_nl N
        ON N.case = C.caseID 
    LEFT JOIN question_fr F 
        ON F.case = C.caseID