自然結合とは?しぜんけつごう
自然結合とは、同じ名前の列を結合条件として二つの表を結び、その共通列を結果に一つだけ残す結合。条件を明示する等結合と結ばれる行は同じだが、結果に現れる列の数が違う。結合条件を書かずに済む代わりに列名の一致へ依存するため、表の設計が変われば結果も変わりうる点に注意がいる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
重複を避けて表を分ける設計をとると、必要な情報は複数の表にまたがる。取り出すたびに結合条件を書くのは煩わしく、書き誤れば行数が跳ね上がる。列名が揃っていれば条件を省ける記法として用意された。監査人が自らデータを抽出して確かめる場面でも、結合の誤りはそのまま件数の誤りになる。
具体例
社員表と部署表を部署コードで結べば、部署コードは結果に一列だけ現れる。監査人が伝票明細と取引先マスタを結んで件数を数える場面では、結合の前後で件数を記録し、結合によって行が増減していないことを調書に残してから集計値を証拠に用いる。
試験での引っ掛け
内部結合・外部結合の区別と混同しやすい。自然結合と等結合の違いは結ばれる行の条件ではなく結果の列で、共通列が一回か二回かだけが違う。内外の別は「相手のない行を残すか」という別の軸であり、二つの軸を重ねて考えると答えを外す。
関連用語
出た過去問
出典:令和6年度 秋期 システム監査技術者試験 午前Ⅱ 問21(IPA)
“納品”表と“顧客”表の自然結合と同じ結果を得るSQL文はどれか。
正解:SELECT 納品.顧客番号, 納品.商品番号, 納品.納品数量, 顧客.顧客名 FROM 納品, 顧客 WHERE 納品.顧客番号 = 顧客.顧客番号
要点:自然結合は共通列で等結合し、その共通列を1回だけ出力する
自然結合は、両方の表に共通する列(ここでは顧客番号)の値が等しい行同士を結合し、結合に使った共通列を重複させずに1回だけ出力する。したがって結果の列は、納品側の顧客番号・商品番号・納品数量に、顧客側の顧客名を加えたものになる。アスタリスクを使うと顧客番号が二度現れるため、自然結合と同じ結果にはならない。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。