是否使用JOIN?

vol*_*olk 3 sql join

可能重复:
INNER JOIN与WHERE子句 - 有什么区别吗?
SQL JOIN:USING,ON或WHERE有区别吗?

例如,我有这样的SQL声明:

SELECT *  
  FROM orders, inventory  
 WHERE orders.product = inventory.product
Run Code Online (Sandbox Code Playgroud)

要么

SELECT *  
  FROM orders  
  JOIN inventory  
    ON orders.product = inventory.product
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别?

Mar*_*ers 12

它们完全相同,但我建议使用第二种方法来实现可读性和可维护性.

  1. 使用JOIN允许您将定义表之间关系的条件与作为结果集上的过滤器的条件分开.

  2. 使用JOIN可以更容易地查看是否缺少连接条件.

  3. 使用 JOIN允许您轻松选择INNEROUTER JOIN.逗号语法等同于INNER JOIN(尽管某些数据库在使用第一种方法时确实具有允许外部联接的扩展名).

  4. 最重要的是要保持一致.逗号语法与JOIN关键字具有不同的优先级,如果您尝试在同一查询中混合使用这两种语法,则可能会导致混淆错误.由于第3点,如果你总是使用它会更容易保持一致JOIN.

  • 隐含连接区域SQL反模式,没有任何借口永远使用一个. (2认同)