最佳实践:Oracle SQL连接

mil*_*s55 3 sql oracle

以下哪个例子是内连接的最佳实践?以下示例非常简单,但如果涉及多个表,该怎么办?你会选择哪种方法?

示例查询:

简单

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;
Run Code Online (Sandbox Code Playgroud)

使用关键字INNER JOIN

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers
INNER JOIN orders
ON suppliers.supplier_id = orders.supplier_id;
Run Code Online (Sandbox Code Playgroud)

Seb*_*bas 6

自1992年以来ANSI建议使用JOIN符号,关于可读性,这是我建议使用的.

在这个主题上已经说了一切,但我只是提醒一下,从逻辑的角度来看,将连接条件与值过滤器分开更有意义,原因有两个:

  • 那根本不是一回事
  • Oracle内部(也可能是mysql,即使我不知道)首先计算中间记录集然后,然后应用WHERE过滤器.