使用join on和join using的目的都是通过某个列连接在一起,但是有以下不同点:
- on可以通过表达式来连接不同名称的列,例如
on (tableA.columnA = tableB.columnB)
,而using必须是同名列。 - 返回的结果集不一样:看下图:
可以看到用on的时候相当于把两个表的连接那列都返回回来,而using只返回了一列,并且这一列在select中是可以没有表名来限定的。
P.S.查资料看有些数据库(oracle?)的话这一列是不能有表名限定的,在我本地的MySQL是都可以的。