「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で存在しない行を生成し固定行数で処理したい時に役立つ方法

帳票データなどで登録されているデータ数に左右されず、 固定行数でデータを取得したい場合があります。

記事を読む

SELECTでUNIONは複数個使える

SELECTでの複数のUNIONの使い方 SELECTでUNIONは複数個、連続して使えるようです

記事を読む

SQLServerのSQL_VARIANT_PROPERTYを使ってカラムの基本データ型を取得する

このページはSQL_VARIANT_PROPERTYを使ってカラムの基本データ型を取得すると重複して

記事を読む

ISNULLとCOALESCEは動作が異なる

ISNULLとCOALESCEは動作が異なるので注意が必要 とある人が作成したSQLを見ているとC

記事を読む

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

ストアドプロシジャーのソースを表示します。

記事を読む

SQLで指定された年月日の月末日付を取得する

指定された年月日の月末日付を取得 SQLserverには指定された年月日の月末日付を取得する関

記事を読む

SQLで大文字、小文字変換を行う

SQLで大文字⇔子文字変換を行う SQLで大文字⇔小文字変換を行うには「UPPER関数」と「LOW

記事を読む

SQL_VARIANT_PROPERTYを使ってカラムの基本データ型を取得する

カラムの基本データ型取得 SQLサーバーで定義されているテーブルのカラムの 基本データを取得しま

記事を読む

指定した列名がどのテーブルで使用されているか検索するSQL

指定した列名を利用しているテーブルを検索 SQLServerで指定した列名がどのテーブルで使用され

記事を読む

再帰SQLで歯抜けの日付データを取得する

再帰SQLを使って歯抜けの日付データを取得 処理が自動実行(バッチ処理)で実行された日付を管理して

記事を読む

0で埋めで固定長のデータにする

0で埋めで固定長のデータにする データべース内のデータを0埋めして取

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

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

SQL Server-SQLでテーブル仕様書になるものネタを取ってみる

SQLでテーブル仕様書になるものネタを取ってみます。 こ

MERGEでINSERTとUPDATEを1行で実行する

MERGE文を使うと行の存在有無を気にせずに1行のSQLでOK

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

SQLでIFを使わずに条件分岐する SQLでIFを書けばWHERE句

→もっと見る



PAGE TOP ↑