ホームページ > データベース > mysql チュートリアル > 左の外側の結合が左のテーブルにあるよりも多くの行を返すのはなぜですか?

左の外側の結合が左のテーブルにあるよりも多くの行を返すのはなぜですか?

Barbara Streisand
リリース: 2025-01-25 01:31:09
オリジナル
817 人が閲覧しました

Why Does My LEFT OUTER JOIN Return More Rows Than Are in the Left Table?

LEFT OUTER JOIN の予期しない行数について理解する

LEFT OUTER JOIN は左側のテーブルからすべての行を返すように設計されていますが、結果セットが予想よりも大きくなる場合があります。これは、LEFT OUTER JOIN の機能の重要な特性により発生します。

左側のテーブルの不一致行が右側のテーブルの列に単純に NULL 値を持つという単純な仮定とは異なり、LEFT OUTER JOIN には実際には 両方 のテーブルの すべて の一致する行が含まれます。 したがって、左側のテーブルの 1 つの行が右側のテーブルの複数の行と一致する場合、結果にはその左側のテーブルの行の複数のコピーが含まれます。これは INNER JOIN の動作に似ており、行数が予想よりも多くなります。

次の SQL クエリについて考えてみましょう:

<code class="language-sql">SELECT     
    SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID
FROM
    SUSP.Susp_Visits 
LEFT OUTER JOIN
    DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum</code>
ログイン後にコピー

SUSP.Susp_Visits の列のみが選択されていることに注意してください。 ただし、DATA.Dim_Member では複数の一致が発生する可能性があるため、SUSP.Susp_Visits の各行が出力に複数回表示される可能性があります。これは行数の増加を説明しています。

左側のテーブルのデータのみが必要で、行の重複を避けたい場合は、LEFT OUTER JOIN は必要ありません。 左側の表の単純な SELECT ステートメントは、行数を増やすことなく必要なデータを提供します。 LEFT OUTER JOIN を効果的に使用し、正確な結果を得るには、この動作を理解することが重要です。

以上が左の外側の結合が左のテーブルにあるよりも多くの行を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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