3

内部結合のベスト プラクティスは次のうちどれですか? 以下の例は非常に単純ですが、複数のテーブルが関係している場合はどうなるでしょうか? あなたはどのアプローチを選びますか?

クエリの例:

単純

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

キーワード INNER JOIN の使用

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers
INNER JOIN orders
ON suppliers.supplier_id = orders.supplier_id;
4

3 に答える 3

6

1992 年以来、 ANSIは表記法を推奨しておりJOIN、読みやすさに関しては、これを使用することをお勧めします。

このトピックについてはすべて述べてきましたが、論理的な観点からは、次の 2 つの理由から、結合条件を値フィルターから分離する方がはるかに理にかなっていることを思い出してください。

  • それはまったく同じことではありません
  • Oracle は内部的に (そしておそらく mysql も、私にはよくわかりませんが)最初に中間レコードセットを計算し、その後でWHEREフィルターを適用します。
于 2013-04-10T13:46:09.320 に答える
0

JOIN 型を明示的に指定し、ON 句を使用することをお勧めします。 しかし、正しく使用する必要があります。あなたの例では、FROM 句とサプライヤー テーブルを含めるのを忘れていました。

SELECT suppliers.supplier_id, 
       suppliers.supplier_name, 
       orders.order_date
  FROM suppliers s INNER JOIN 
       orders o ON s.supplier_id = o.supplier_id;
于 2013-04-10T13:46:16.567 に答える
0

機能に関しては、WHERE と JOINS の両方が同じです。

于 2013-04-10T13:48:00.027 に答える