SQL | 使用 JOIN USING 和 JOIN ON 的区别

SQL | 使用 JOIN USING 和 JOIN ON 的区别

在本文中,我们将介绍 SQL 中 JOIN USING 和 JOIN ON 的区别以及它们的用法和示例。

阅读更多:SQL 教程

JOIN USING

JOIN USING 是一种用于连接两个或多个表的 SQL 语句。它使用两个或多个表中的一个或多个公共列作为连接条件。

JOIN USING 的语法如下:

SELECT 列名
FROM 表1
JOIN 表2 USING (公共列)

以下是一个示例,假设我们有两个表:员工表(emp)和部门表(dept)。

员工表(emp)

emp_id emp_name dept_id
1 Alex 1
2 Bob 2
3 Chris 1
4 David 3

部门表(dept)

dept_id dept_name
1 Sales
2 IT
3 Finance

现在,我们想要获取员工表和部门表中的数据,并且基于部门 ID 进行连接。我们可以使用 JOIN USING 来实现:

SELECT emp_id, emp_name, dept_name
FROM emp
JOIN dept USING (dept_id)

执行上述查询后,我们将获得以下结果:

emp_id emp_name dept_name
1 Alex Sales
2 Bob IT
3 Chris Sales
4 David Finance

JOIN ON

JOIN ON 是另一种用于连接表的 SQL 语句。它通过在表之间指定连接条件来连接表。与 JOIN USING 不同,JOIN ON 可以使用列(不仅仅是公共列)作为连接条件。

JOIN ON 的语法如下:

SELECT 列名
FROM 表1
JOIN 表2 ON (表1.列 = 表2.列)

以下是一个示例,我们使用前面提到的员工表(emp)和部门表(dept):

员工表(emp)

emp_id emp_name dept_id
1 Alex 1
2 Bob 2
3 Chris 1
4 David 3

部门表(dept)

dept_id dept_name
1 Sales
2 IT
3 Finance

如果我们想要根据员工表中的部门 ID 和部门表中的部门 ID 连接两个表,我们可以使用 JOIN ON:

SELECT emp_id, emp_name, dept_name
FROM emp
JOIN dept ON (emp.dept_id = dept.dept_id)

执行上述查询后,我们将获得以下结果:

emp_id emp_name dept_name
1 Alex Sales
2 Bob IT
3 Chris Sales
4 David Finance

我们可以看到,JOIN ON 可以使用表中的任意列作为连接条件,而不仅仅局限于公共列。

总结

在本文中,我们介绍了 SQL 中 JOIN USING 和 JOIN ON 的区别。JOIN USING 是使用两个或多个表中的一个或多个公共列作为连接条件的 SQL 语句。JOIN ON 则是通过在表之间指定连接条件来连接表,可以使用任意列作为连接条件。根据实际需要,我们可以选择使用 JOIN USING 或 JOIN ON 来实现表的连接操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程