SQL Server (Transact-SQL) JOIN 子句用于根据两个或多个表之间的公共列来组合它们的行。 SQL中有四种类型的JOIN:

  • INNER JOIN: 有时称为简单 JOIN。它根据两个表中的匹配行返回记录。
  • LEFT JOIN: 有时称为左外连接。它返回包含左表中所有行和右表中匹配行的记录。
  • RIGHT JOIN :有时称为右外连接。它返回包含右表中所有行和左表中匹配行的记录。
  • FULL JOIN :有时称为"FULL OUTER JOIN"。它返回包含两个表中所有行的记录。
SQL Server 连接

示例:

考虑一个数据库,其中包含名为 Employee 和 Contact_Info 的表,并具有以下记录:

表1:Employee表

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

表2:Contact_Info 表

Phone_NumberEmpIDAddressGender
+1-80540980002Brooklyn, New York, USAF
+33-1479961013Grenelle, Paris, FranceM
+31-2011503194Geuzenveld, Amsterdam, NetherlandsF
+86-10997324586Yizhuangzhen, Beijing, ChinaM
+65-672348247Yishun, SingaporeM
+81-3577990728Koto City, Tokyo, JapanM

JOIN 子句与 Employee 和 Contact_Info一起使用 基于公共列 EmpID 的表。它根据两个表中的匹配情况返回Name、Age 和Address 列。查询如下:

SELECT Employee.Name, Employee.Age, Contact_Info.Address 
FROM Employee
JOIN Contact_Info
ON Employee.EmpID = Contact_Info.EmpID; 

这将产生如下所示的结果:

NameAgeAddress
Marry24Brooklyn, New York, USA
Jo27Grenelle, Paris, France
Kim30Geuzenveld, Amsterdam, Netherlands
Huang28Yizhuangzhen, Beijing, China