ホームページ > データベース > mysql チュートリアル > SQL における Natural JOIN と Inner JOIN の主な違いは何ですか?

SQL における Natural JOIN と Inner JOIN の主な違いは何ですか?

Patricia Arquette
リリース: 2025-01-06 01:12:42
オリジナル
879 人が閲覧しました

What's the Key Difference Between Natural JOIN and Inner JOIN in SQL?

自然結合と内部結合の違いを理解する

SQL (構造化照会言語) の領域では、自然結合と内部結合の違い。これらの結合タイプは似ていますが異なっており、結果のデータ取得に影響を与えます。

INNER JOIN または USING として示される内部結合は、ON 句で指定された 1 つ以上の列の等価性に基づいて 2 つのテーブルの行を結合します。対照的に、NATURAL JOIN で表される自然結合は、両方のテーブルで同じ名前を共有する列に基づいてテーブルを自動的に結合します。

主な違いは、返される列の数にあります。内部結合では両方のテーブルのすべての列が維持されますが、自然結合では同じ名前の重複する列が除外されます。これは、自然結合では共通列に同じデータが含まれており、冗長であると想定しているために発生します。

たとえば、Column1 が共通列である 2 つのテーブル TableA と TableB について考えてみましょう。内部結合は両方のテーブルからすべての行を返し、Column1:

SELECT * 
FROM TableA AS a 
INNER JOIN TableB AS b 
USING (Column1);
ログイン後にコピー

Output:

+------------+-----------+------------+-----------+
| a.Column1  | a.Column2 | b.Column1  | b.Column3 |
+------------+-----------+------------+-----------+
| 1          |  2        | 1          |   3       |
+------------+-----------+------------+-----------+
ログイン後にコピー

の両方のインスタンスを含みますが、TableA 間の自然結合はそして、TableB は冗長性を省略します。 Column1:

SELECT * 
FROM TableA 
NATURAL JOIN TableB;
ログイン後にコピー

Output:

+------------+----------+----------+
| Column1    | Column2  | Column3  |
+------------+----------+----------+
| 1          |  2       |   3      |
+------------+----------+----------+
ログイン後にコピー

自然結合では、結合する列が共有名によって暗黙的に決定されることに注意することが重要です。明示的に指定することはできません。さらに、自然結合は、単一の共通列を持つテーブルでのみ実行できます。

効果的なデータ取得には、内部結合と自然結合の間のこれらのニュアンスを理解することが不可欠です。適切な結合タイプを選択することで、クエリを最適化し、望ましい結果を得ることができます。

以上がSQL における Natural JOIN と Inner JOIN の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート