SQL INNER JOIN ON和USING

时间:2011-10-19 18:53:56

标签: sql

说我有表格,我加入内部联接。使用“ON”比“USING”有什么好处。或者它们在所有意义上都是一样的吗?

3 个答案:

答案 0 :(得分:5)

USING要求两个表中列的名称相同:

SELECT *
FROM   employee 
   INNER JOIN department 
      USING (DepartmentID);

ON允许您指定要加入的任何列:

SELECT *
FROM   employee 
   JOIN department 
      ON employee.DepartmentID = department.ID;

简而言之,USING更简洁,但ON更灵活。

http://en.wikipedia.org/wiki/Join_(SQL)#Equi-join

答案 1 :(得分:4)

并非所有SQL版本都使用USING,因此它不太便于携带,也不是一种罕见的查询方式。

答案 2 :(得分:4)

USING是一个等值连接并导致从结果集中删除重复的列(可以说这使得它“更具关系性”)。

ON是一个theta连接(即连接条件不必相等,可能涉及具有不同名称的列),并允许重复列出现在结果集中。