行数の考え方・複合キー・ON vs WHERE の完全理解
両テーブルで結合キーが一致する行だけを返す結合。最も多用される JOIN 種類で、JOIN のみで同義。
SELECT o.受注ID, c.顧客名, o.金額 FROM 受注 o INNER JOIN 顧客 c ON o.顧客ID = c.顧客ID;
| 受注 | 顧客 | INNER JOIN 結果 | ||||
|---|---|---|---|---|---|---|
| 受注ID | 顧客ID | 顧客ID | 顧客名 | 受注ID | 顧客名 | 金額 |
| 001 | C01 | C01 | 山田 | 001 | 山田 | 5,000 |
| 002 | C99 | C02 | 鈴木 | 002 は除外(C99 が顧客に存在しない) | ||
-- 複合外部キーでの結合 SELECT d.受注ID, p.商品名, p.単価 FROM 受注明細 d JOIN 商品価格 p ON d.商品ID = p.商品ID AND d.受注日 BETWEEN p.適用開始日 AND p.適用終了日;
受注日に有効な価格だけを紐付ける典型パターン(有効期間型の設計)。
SELECT o.受注ID, c.顧客名, e.氏名 AS 担当者名, o.金額 FROM 受注 o JOIN 顧客 c ON o.顧客ID = c.顧客ID JOIN 社員 e ON o.担当者ID = e.社員ID WHERE o.金額 >= 10000;
| 場所 | 目的 | 例 |
|---|---|---|
| ON 句 | 結合の定義(どの行を対応させるか) | ON o.顧客ID = c.顧客ID |
| WHERE 句 | 結合後の絞り込み | WHERE o.金額 >= 10000 |
JOIN のみ = INNER JOIN(省略形)読了ボタンを押すとトップページの進捗に反映されます