条件SQL联接

条件SQL联接,sql,join,Sql,Join,我们有一个用户表,其中大多数都附有学校编号。然后,我使用了一个内部联接来联接学校的表,以获得学校的名称。一些用户没有学校编号,因此存在空值,这意味着他们的数据没有出现。是否有一种方法可以根据schoolid字段进行条件联接 用户表: Name | Schoolid -----|--------- John | 27 Fred | 49 Sam | NULL 学校桌子: Schoolid | Schoolname ----------|----------- 27 | John

我们有一个用户表,其中大多数都附有学校编号。然后,我使用了一个内部联接来联接学校的表,以获得学校的名称。一些用户没有学校编号,因此存在空值,这意味着他们的数据没有出现。是否有一种方法可以根据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
有人能帮忙吗?是不是很简单,我只是个白痴


谢谢

您正在寻找外部联接

例如

通过一些示例,即使您使用的是不同的SQL方言,也可能会更清楚

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

可能是一个
左外部连接
?为什么
外部连接
?我会选择左连接,这样可以吗?为什么是全连接?OP不会要求没有学生的学校名称。
SELECT * 
FROM Users u
FULL OUTER JOIN School s ON u.Schoolid = s.Schoolid