ホームページ >データベース >mysql チュートリアル >左の外側の結合が左のテーブルにあるよりも多くの行を返すのはなぜですか?
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 サイトの他の関連記事を参照してください。