ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
OracleのSQLのJOIN句の記事です。複数のテーブルを共通カラムで結合して1つの結果セットとして取得するための構文。RDBMSでは最も頻繁に使う処理の1つです。
JOINの種類
| 種類 | 意味 |
|---|---|
| INNER JOIN(内部結合) | 両方に存在する行のみ |
| LEFT (OUTER) JOIN | 左表は全件、右表は一致するもの。なければNULL |
| RIGHT (OUTER) JOIN | 右表が全件、左表は一致するもの |
| FULL (OUTER) JOIN | 両表のすべて。一致しないところはNULL |
| CROSS JOIN | 直積(全組合せ) |
| SELF JOIN | 同じテーブルを自分自身と結合 |
基本構文
|
SELECT カラム |
INNER JOIN の例
|
-- 注文と顧客を結合 |
LEFT JOIN の例
|
-- 顧客全員と、注文がある場合のみその情報 |
3つ以上のテーブルの結合
|
SELECT o.order_id, c.name, p.product_name |
JOINで結果が変わるパターン
| JOIN種別 | 左に存在し右になし | 右に存在し左になし | 両方一致 |
|---|---|---|---|
| INNER | 除外 | 除外 | 含む |
| LEFT | 含む(NULL) | 除外 | 含む |
| RIGHT | 除外 | 含む(NULL) | 含む |
| FULL | 含む(NULL) | 含む(NULL) | 含む |
| CROSS | すべての組合せ(ONなし) | すべての組合せ | すべての組合せ |
古い書き方(カンマ結合)
古いSQLでは FROM 句にカンマで並べ、WHERE で結合条件を書く書き方がありました。可読性が低く非推奨。
|
-- 古い(非推奨) |
パフォーマンスの基本
- 結合キーにインデックスを張る(主キー・外部キー)
- 結合件数を意識: 多対多になると結果が爆発する
- WHERE で先に絞り込む: 結合前にデータを減らすと速い(オプティマイザが最適化することも多い)
- EXPLAIN PLAN で実行計画を確認
注意点
- カンマ結合とJOINを混在させない(暗黙のCROSS JOINが入ると結果が膨れる)
- 結合キーがNULL を含む列だと、結合条件で NULL = NULL は false になり一致しない
- FULL JOINはMySQLでは非対応(UNIONで代替)
- OUTER JOINでWHERE で右表の条件を書くと実質INNER扱いになることがある(NULL が除外される)
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- EJS 完全ガイド — Node.js テンプレートエンジン 2026-05-18 01:50:54
- jQuery HTML/CSS 操作完全ガイド — DOM 操作の決定版 2026-05-18 01:50:54
- Vue.js でナビゲーションの現在ページをハイライトする方法 2026-05-18 01:50:54
- JavaScript のみで form を POST 送信する方法完全ガイド 2026-05-18 01:50:54
- jQuery 概要と現代の代替フレームワーク完全ガイド 2026-05-18 01:50:54
- Laravel バリデーションの日本語化完全ガイド 2026-05-18 01:50:54
- Laravel Artisan コマンド一覧完全リファレンス 2026-05-18 01:50:54
- Laravel ルート認証化完全ガイド — middleware と Gate 2026-05-18 01:50:54
- jQuery の導入方法完全ガイド — CDN/npm/Webpack 2026-05-18 01:50:54
- Laravel メンテナンスモード完全ガイド 2026-05-18 01:50:54
- Laravel Query Builder の集約関数 (count/max/avg) 完全ガイド 2026-05-18 01:50:53
- SQL LIMIT 句完全ガイド — ページネーションと挙動 2026-05-18 01:50:53
- Django Model の定義方法完全ガイド — フィールド型と Meta 2026-05-18 01:50:53
- DB インデックスの再作成方法完全ガイド 2026-05-18 01:50:53
- Django マイグレーションファイル作成完全ガイド 2026-05-18 01:50:53
コメントを削除してもよろしいでしょうか?