关于一列一侧为空的连接问题
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】:您需要为此使用左连接。
【讨论】:
以上是关于关于一列一侧为空的连接问题的主要内容,如果未能解决你的问题,请参考以下文章