条件SQL加入

时间:2014-11-07 15:22:19

标签: sql join

我们有一个用户表,其中大多数都附有学号。然后,我使用内部加入加入学校的桌子,以获得学校的名称。有些用户没有学号,因此有一个NULL值 - 这意味着他们的数据都没有出现。有没有办法可以根据schoolid字段进行条件连接?

用户表:

Name | Schoolid
-----|---------
John | 27
Fred | 49
Sam  | NULL

学校表:

Schoolid  | Schoolname
----------|-----------
27        | John's School
49        | Fred's School

当表格加入Schoolid时,结果为

Name | Schoolname
-----|-----------
John | John's School
Fred | Fred's School

理想情况下,我希望结果如下:

Name | Schoolname
-----|-----------
John | John's School
Fred | Fred's School
Sam  | NULL

有人可以帮忙吗?这是一件简单的事,我只是一个白痴?

由于

2 个答案:

答案 0 :(得分:3)

您正在寻找外部联接。

E.g。

select * from Users left outer join School on Users.Schoolid = School.Schoolid

Microsoft has an article有一些示例可以使其更清晰,即使您使用的是不同的SQL方言。

答案 1 :(得分:0)

SELECT * 
FROM Users u
LEFT OUTER JOIN School s ON u.Schoolid = s.Schoolid

甚至。

SELECT * 
FROM Users u
FULL OUTER JOIN School s ON u.Schoolid = s.Schoolid