MySQL 关键字

MySQL JOIN 关键字用于根据两个或多个表之间的公共列来组合两个或多个表的行。 MySQL中有四种类型的JOIN:

  • INNER JOIN:有时称为简单 JOIN。它根据两个表中的匹配行返回记录。
  • LEFT JOIN:它有时称为左外连接。它返回包含左表中所有行和右表中匹配行的记录。
  • RIGHT JOIN :有时称为右外连接。它返回包含右表中所有行和左表中匹配行的记录。
  • CROSS JOIN :返回包含两个表中所有行的记录。它有时被称为 CARTESIAN JOIN,因为在没有 WHERE 条件的情况下,它的行为类似于笛卡尔积,即结果集中的行数是两个表的行数的乘积。

MySQL 连接

示例:

考虑一个数据库,其中包含名为 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 子句与基于公共列EmpID 的Employee 和Contact_Info 表一起使用。它根据两个表中的匹配情况返回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