【要約】【35歳未経験でも理解できた】SQLのJOIN [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
- ・データの冗長性。1つのテーブルに全データを集約することによる弊害。
- ・更新時の整合性維持の困難さ。例:住所変更時に、重複した全レコードを修正する必要がある。
- ・結合条件の誤解による、意図しないデータの消失やNULLの混入。
// Approach
1.データの正規化。管理はテーブルを分けて行う。参照時に結合を行う。
2.INNER JOIN(内部結合)。両方のテーブルに共通のIDがある場合のみ抽出。条件に合わないデータは除外される。
3.LEFT JOIN(左外部結合)。左側のテーブルを基準に全件抽出。右側に一致がない場合はNULLを格納する。
// Result
- ・JOINの仕組みを理解できる。
- ・データ抽出時のミスを防止できる。
- ・「結合によるデータの消失」といったトラブルへの対処が可能になる。
Senior Engineer Insight
> 初学者の概念理解には有用である。しかし、実戦では結合の数がパフォーマンスに直結する。大規模環境では、結合キーへのインデックス付与が不可欠だ。実行計画の確認も必須となる。本記事の理解はあくまで基礎である。結合による計算コストの増大を常に意識すべきである。