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

Posted

技术标签:

【中文标题】关于一列一侧为空的连接问题【英文标题】:Question on join where one column one side is null 【发布时间】:2011-02-25 16:43:37 【问题描述】:

我有两张表,用于存储候选人和他们的成绩。一个简单的 join 可以通过匹配 ID 等方式获取所有候选人及其成绩。

例如:

Alan    C
George  A

等等。但是:

Nina

Nina 的成绩为空,因为她没有参加考试。

如何获得如下输出?

Alan   C
George A
Nina

所以还是找妮娜吧,即使她没有参加考试。我尝试过空检查,然后执行某些操作等。

谢谢

【问题讨论】:

【参考方案1】:

您想使用左连接。

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

【讨论】:

【参考方案2】:

您需要使用left join。例如:

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

左连接总是列出连接“左侧”的所有行——在本例中是候选行。对于考生在成绩表中没有条目的行,从该表中填充的所有列都将为空。

【讨论】:

【参考方案3】:

您需要为此使用左连接。

【讨论】:

以上是关于关于一列一侧为空的连接问题的主要内容,如果未能解决你的问题,请参考以下文章

按列分组,优先选择另一列不为空的行

关于ASP语句判定某数输入值不为空

javascript关于不能为空的问题

关于判断int是不是为空的问题。

EXCEL如何通过函数得到一列不为空值的数

关于获取上传文件为空的问题?