回忆是一座桥
却是通往寂寞的牢

SQL语法 - 使用连接查询从多个表中查找数据

SQL支持多种类型的连接查询,主要包括内连接(INNER JOIN)、左外连接(LEFT OUTER JOIN/LEFT JOIN)和右外连接(RIGHT OUTER JOIN/RIGHT JOIN)等。

内连接

内连接返回两个表中满足连接条件的所有行。换句话说,只有当两个表中的对应行具有匹配的值时,这些行才会出现在结果集中。

示例:

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

以上查询返回所有员工及其所属部门的名称,仅当员工与部门之间存在有效关联时。

左外连接

左外连接返回左表中的所有行,以及右表中满足连接条件的行。如果右表中没有匹配的行,则结果集中右表的部分将包含NULL值。

示例:

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

以上查询返回所有员工及其所属部门的名称,即使某些员工没有分配部门,其部门名称也会显示为NULL。

右外连接

右外连接与左外连接相反,返回右表中的所有行,以及左表中满足连接条件的行。如果左表中没有匹配的行,则结果集中左表的部分将包含NULL值。

示例:

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
RIGHT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

以上查询返回所有部门及其所属员工的名称,即使某些部门没有员工,其员工名称也会显示为NULL。

隐式连接

隐式连接不使用JOIN关键字,而是通过FROM tbl1,tbl2的方式来连接多张表,这种方式产生的是笛卡尔积表,因此再使用WHERE语句进行条件过滤,即可实现内连接的等价查询。默认情况下,隐式连接会使用内连接的方式进行连接。

示例:

SELECT Employees.Name, Departments.DepartmentName
FROM Employees,Departments
WHERE Employees.DepartmentID = Departments.DepartmentID;

以上查询返回的结果与内连接的结果一致,将返回所有员工及其所属部门的名称,仅当员工与部门之间存在有效关联时。

未经允许不得转载:夕枫 » SQL语法 - 使用连接查询从多个表中查找数据
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论