「INNER JOIN」「LEFT OUTER JOIN」「RIGHT OUTER JOIN」「FULL OUTER JOIN」についてまとめ

公開日: : 最終更新日:2013/12/10 SQL Server , , , , ,

SQLで良く使うJOINについて

SQLでよく使う「INNER JOIN」「LEFT OUTER JOIN」「RIGHT OUTER JOIN」「FULL OUTER JOIN」に
ついてまとめてみます。

データの準備

まずはデータを準備します。

INNER JOIN

INNER JOINは「両方にnoが存在するデータ」の集合を取得します。

実行結果は

test_main_table_no test_sub_table_no name age
1 1 太郎さん 10
2 2 次郎さん 20
5 5 五郎さん 50

です。

LEFT OUTER JOIN

LEFT OUTER JOINは「左側のテーブルに存在noすべてとそれに該当する右側のデータ」の集合を取得します。

以下が実行結果です。

test_main_table_no test_sub_table_no name age
1 1 太郎さん 10
2 2 次郎さん 20
4 NULL 四郎さん NULL
5 5 五郎さん 50

RIGHT OUTER JOIN

RIGHT OUTER JOINは「右側のテーブルに存在noすべてとそれに該当する左側のデータ」の集合を取得します。

以下が実行結果です。

test_main_table_no test_sub_table_no name age
1 1 太郎さん 10
2 2 次郎さん 20
NULL 3 NULL 30
5 5 五郎さん 50

FULL OUTER JOIN

FULL OUTER JOINは「左側のテーブルと右側に存在するすべて組み合わせのnoのデータ」の集合を取得します。

以下が実行結果です。

test_main_table_no test_sub_table_no name age
1 1 太郎さん 10
2 2 次郎さん 20
4 NULL 四郎さん NULL
5 5 五郎さん 50
NULL 3 NULL 30
スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 13 follow us in feedly

関連記事

SQLでランダムにユニーク(一意)な値(ID)を取得する

ランダムにユニーク(一意)な値(ID)を取得する SQLServerでテーブル内でユニークキーをラ

記事を読む

SQLで当月の第何週目の何曜日か取得する

SQLで今日は第何週、何曜日か取得する SQLServerでは関数で今日は当月の第何週目か取得する

記事を読む

@@ROWCOUNTで処理した件数を取得する

@@ROWCOUNTは直前に処理した件数を取得するための関数 SQLServerでは実行したSQL

記事を読む

SQLで前の行と同じ値は表示しないようにする

前の行と同じ値は表示しない SQLで前の行と同じ値は表示しないようにするして 伝票印刷のような処

記事を読む

SQLで改行コードを含む項目を取得する

SQLで改行コードを含む項目を検索する Microsoft SQL Server Managemn

記事を読む

SQL Server のファイルサイズを圧縮する

データベースファイルのサイズを圧縮する データベースファイル(.mdf)またはトランザクションログ

記事を読む

ユーザー定義テーブル型変数を使用する

ユーザー定義テーブル型を使ってみる SQLServer 2008には、テーブル構造の定義を表す

記事を読む

CASE WHENを使ってSQLでIF文を使わずに条件を分岐する

SQLでIFを使わずに条件分岐する SQLでIFを書けばWHERE句の内容を変えて検索できますが、

記事を読む

SQLで日付範囲の重複をチェックする

SQLで日付範囲の重複をチェックする SQLで日付範囲の重複をチェックする必要が出たので調査しまし

記事を読む

SQL Server-ストアドプロシジャーのソースを表示する2

過去の投稿「SQL Server-ストアドプロシジャーのソースを表示する1」で示した方法では 1つ

記事を読む

ストアドプロシジャ内で例外エラーが発生した行番号を取得する。

例外エラーが発生した行番号を取得する SQLServerのストア

SQLServerでSQLを使ってテーブルのカラム名(項目名)を取得する

SQLでテーブルのカラム名(項目名)を取得 Oracleでは

SQLサーバ
連番中で 「歯抜け」の番号を見つけ出すSQL

テーブル内の連番の歯抜け番号を探す よくある処理でテーブルに設定され

SQLでCASE~WHENを使ってみる

SQLでCASE~WHENを使う SQLでCASE~WHENを使うと

DATENAME関数を使って日付を取得する。

DATENAME関数を使って日付取得 SQLServerでDATEN

→もっと見る



PAGE TOP ↑