关于连接的问题,其中一列一侧为空

时间:2011-02-25 16:43:37

标签: sql tsql

我有两张桌子,存储候选人和他们的成绩。简单的加入可以通过匹配ID等来获得所有候选人及其成绩。

e.g:

Alan    C
George  A

等。但是:

Nina

Nina的成绩是无效的,因为她没有参加考试。

如何获得如下输出?

Alan   C
George A
Nina

即使她没参加考试,仍然可以得到妮娜。我尝试过空检查,然后执行某些操作等等。

由于

3 个答案:

答案 0 :(得分:7)

您想使用左连接。

select c.name, coalesce(g.grade,'')
    from candidate c
        left join grade g
            on c.candidate_id = g.candidate_id

答案 1 :(得分:1)

您需要使用left join。例如:

 select c.name, g.grade
 from candidates c
 left join grades g on g.candidateid=c.id

左连接始终列出连接“左”侧的所有行 - 在本例中为候选。在候选者在成绩表中没有条目的行上,从该表填充的所有列都将为空。

答案 2 :(得分:1)

您需要使用左连接。