JOIN USING和JOIN ON有什么区别?

use*_*401 2 sql postgresql

通常,结果集或查询性能之间是否存在任何差异:

SELECT * FROM tableA JOIN tableB USING (id);
Run Code Online (Sandbox Code Playgroud)

SELECT * FROM tableA ta JOIN tableB tb ON (ta.id = tb.id);
Run Code Online (Sandbox Code Playgroud)

如果是这样,有什么区别?

使用一个优于另一个的优点/缺点?

Gor*_*off 8

当您说USING,然后在查询中对列的处理方式不同:

  • 两个表必须具有相同的列和join键的名称.(我认为这无论如何都是一种很好的做法,但USING需要它.)
  • 用于连接的密钥只能在查询的其余部分中不使用表别名时使用.
  • 如果这样做SELECT *,则连接键仅返回一次.