ホームページ >データベース >mysql チュートリアル >SQL における Natural JOIN と Inner JOIN の主な違いは何ですか?
自然結合と内部結合の違いを理解する
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 サイトの他の関連記事を参照してください。