假设我有两个表,我使用内连接进行联接。使用“ON”与使用“USING”相比有什么优势?或者从所有意义上讲,它们是一样的吗?
假设我有两个表,我使用内连接进行联接。使用“ON”与使用“USING”相比有什么优势?或者从所有意义上讲,它们是一样的吗?
USING
要求两个表中列的名称必须相同:
SELECT *
FROM employee
INNER JOIN department
USING (DepartmentID);
而ON
允许您指定任何要连接的列:
SELECT *
FROM employee
JOIN department
ON employee.DepartmentID = department.ID;
简言之,USING
更加简洁,但是ON
更加灵活。
USING
是等值连接,会从结果集中删除重复的列(可以说这使它更符合“关系型”数据库的特征)。
ON
是θ连接(即连接条件不需要相等,并且可以涉及具有不同名称的列),允许结果集中出现重复的列。
并非所有的 SQL 方言都支持 USING,因此它不太具备可移植性,同时也是一种较为罕见的查询方式。
USING
似乎不可用。 - Clockwork-Muse
USING
,大多数人在阅读你的代码时都需要查找这个关键字的定义。 - satnhakUSING
连接的列只会在结果集中出现一次,而不是两次(每个表格各一次)。 - Davy8