1. ホーム
  2. mysql

[解決済み] USINGキーワード vs ON句 - MYSQL [重複].

2022-03-05 01:23:02

質問

<ブロッククオート

重複の可能性があります。
MySQL ON vs USING?

クエリ1

SELECT *
FROM users
JOIN orders ON (orders.user_id = users.user_id)
WHERE users.user_id = 1;

クエリ2

SELECT *
FROM users
JOIN orders USING (user_id)
WHERE user_id = 1;

受注テーブルとユーザーテーブルを結合して、あるデータを取得したいと思います。それはうまく動作します。私の問題は、両方のクエリが同じ結果セットを出力するため、それは同じですか?どちらがより効率的に使用できますか?どちらがパフォーマンス的に良いですか?どちらがベストプラクティスなのでしょうか?

解決方法は?

その USING の節は、特に言及する必要のないものです。 JOIN 複数のテーブルからデータを取得する場合の条件です。複数のテーブルからデータを取得するときに USING 節は、その特定のカラム名が両方のテーブルに存在する必要があり、また SELECT クエリは、自動的に USING 節があります。

例えば、テーブル内に2つの共通カラム名がある場合、目的の共通カラム名を USING 節があります。

USING は、ダイナミック SQL の実行時にも、次のように使用します。

EXECUTE IMMEDIATE 'DELETE FROM dept WHERE deptno = :num'
  USING dept_id; 

  • USING 節があります。これにより、ジョインキーを名前で指定することができます。

  • ON 節があります。この構文では、両方のテーブルで結合キーのカラム名を指定することができます。

USING節

その USING 節は、いくつかのカラムが同じ名前を共有しているが、これらの共通カラムをすべて使って結合したくない場合に使用します。USING句に列挙された列は、WHERE句を含むステートメント内でいかなる修飾子も持つことはできません。

ON節

ON 句は、両方のテーブルでカラム名が一致しないテーブルを結合するために使用されます。結合条件は、WHERE句のフィルター条件から取り除かれる。