ホームページ >データベース >mysql チュートリアル >MySQL JOIN: ON と USING をいつ使用するか?

MySQL JOIN: ON と USING をいつ使用するか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-09 10:44:07450ブラウズ

MySQL JOIN: When to Use ON vs. USING?

MySQL JOIN ON と USING: 構文の違いと使用例

MySQL でテーブルを結合する場合、ON キーワードまたは USING キーワードのいずれかを使用するオプションがあります。一見すると、USING は ON に比べて便利な構文のように見えるかもしれません。ただし、各キーワードを特定のシナリオに適したものにする微妙な違いがあります。

ON: 柔軟性の向上

ON では、次のようなさまざまな条件でテーブルを結合できるため、柔軟性が高まります。

  • 単一列
  • 一連の列
  • 複合体条件

たとえば、2 つの列間の比較、または式に基づいてテーブルを結合できます。

SELECT *
FROM world.City
JOIN world.Country
ON (City.CountryCode = Country.Code)
WHERE ...

使用方法: シンプルさと利便性

USING は、同じ名前の列で完全一致を共有するテーブルを結合するために特別に設計されています。 ON 句を使用する代わりに共通の列名を指定できるため、構文が簡素化されます。

SELECT ...
FROM film
JOIN film_actor
USING (film_id)
WHERE ...

USING の大きな利点の 1 つは、SELECT 句で結合する列を完全修飾する必要がなくなることです。 :

SELECT film.title, film_id
-- No prefix for film_id required
FROM film
JOIN film_actor
USING (film_id)
WHERE ...

ON と USING: 実用的な例

2 つのキーワードの違いを説明するには、次のようにします。次の例を考えてみましょう:

ON を使用した例:

SELECT film.title, film.film_id -- Prefixing film.film_id required
FROM film
JOIN film_actor
ON (film.film_id = film_actor.film_id)
WHERE ...

この例では、結合される列がまったく同じではないため、ON が使用されます (フィルム.film_id と film_actor.film_id)。曖昧さを避けるために、SELECT 句に film.film_id を付ける必要があります。

USING を使用した例:

SELECT *
FROM t
JOIN t2
USING (i);

この例では、結合列であるため USING が使用されます。 (i) は両方のテーブルで同一であり、同じ名前を持ちます。これにより構文が簡略化され、結果セットに共通列が一度自動的に組み込まれます。

結論

USING はより便利な構文のように見えるかもしれませんが、ON は結合条件に関して柔軟性が高く、次のことを可能にします。より複雑なクエリの場合。名前が異なる列を比較する場合や複雑な条件を適用する場合は、ON を選択します。同じ列名を持つテーブルを結合する場合、特に結合列が結果セットの一部である場合は、USING を使用します。

以上がMySQL JOIN: ON と USING をいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。