logo
     

メニュー
↓ SQL ↓
データ取得の基本(SELECT)

取得条件の指定(WHERE)

計算式を利用する

取得データの並べ替え
      (ORDER BY)


別名を付ける

データを集計(グループ化)する

⇒テーブルの結合
      (INNER JOIN)

テーブルの結合
      (OUTER JOIN)


テーブルの結合
      (CROSS JOIN)


重複行の排除(DISTINCT)

副問い合わせ(サブクエリ)

相関副問い合わせ
      (相関サブクエリ)


クエリの結合

文字列値を連結する

文字列の一部を取り出す

文字列を置換する

NULLを置き換える

条件によって置き換える

↓SQL Server 2012 Express↓
SQL Server 2012 Express
      インストール


SQL Server 2012 Express
      ネットワークの構成


SQL Server 2012 Express
      ログインユーザの作成


SQL Server 2012 Express
      データベースの作成


SQL Server 2012 Express
      テーブルの作成


SQL Server 2012 Express
      SQLの実行


復旧モデルとバックアップ

↓ 番外編 ↓
Windows Server 2012 評価版
      インストール


Windows Server 2012
      スタートメニュー利用方法


Windows Server 2012
      シャットダウン・再起動方法


Windows Server 2012
      サーバーマネージャ自動起動無効


Windows Server 2012
      コンピュータ名・ドメイン変更


テーブルの結合(INNER JOIN)



SELECT文により複数のテーブルを結合してデータを取得するには、通常JOIN句を利用します。
JOIN句にはINNER, LEFT OUTER, RIGHT OUTER, FULL OUTER, CROSSなどがありますが、
ここではINNER JOIN(内部結合ともいいます)について記述します。
INNER JOIN は、両テーブルの結合条件に一致するデータが存在するもののみ取得します。
なお、INNER JOINはWHERE句を利用して記述することもできます。


文法:SELECT <テーブル名1>.<列名1>, <テーブル名2>.<列名2>…
   FROM <テーブル名1>
   INNER JOIN <テーブル名2>
   ON <結合条件>
   WHERE <抽出条件>


***例(2表を結合する)***
[社員マスタ]
所属コード 社員コード 氏名
01 001 テスト一郎
01 002 テスト二郎
02 001 テスト三郎
03 001 テスト四郎
[所属マスタ]
所属コード 所属名
01 営業部
02 企画部
04 販促部


[実行SQL]
※下記ではテーブル名に別名を付けています。別名については「別名を付ける」を参照してください。
SELECT
  shain.所属コード,
  shozoku.所属名,
  shain.社員コード,
  shain.氏名
FROM
  社員マスタ shain
  INNER JOIN 所属マスタ shozoku
  ON shain.所属コード = shozoku.所属コード

*上記はWHERE句を利用すると以下のように書くこともできます

SELECT
  shain.所属コード,
  shozoku.所属名,
  shain.社員コード,
  shain.氏名
FROM
  社員マスタ shain, 所属マスタ shozoku
WHERE
  shain.所属コード = shozoku.所属コード


[結果]
所属コード 所属名 社員コード 氏名
01 営業部 001 テスト一郎
01 営業部 002 テスト二郎
02 企画部 001 テスト三郎
※[所属マスタ]に所属コード'03'のデータが存在しないため、
 [社員マスタ]の所属コード'03'のデータは取得されない。


***例(3表を結合する)***
[社員マスタ]
所属コード 社員コード 氏名 出身県コード
01 001 テスト一郎 01
01 002 テスト二郎 03
02 001 テスト三郎 02
03 001 テスト四郎 01
[所属マスタ]
所属コード 所属名
01 営業部
02 企画部
04 販促部

[県マスタ]
県コード 県名
01 東京都
02 千葉県
03 神奈川県


[実行SQL]
※下記ではテーブル名に別名を付けています。別名については「別名を付ける」を参照してください。
SELECT
  shozoku.所属名,
  shain.社員コード,
  shain.氏名,
  ken.県名 AS 出身県
FROM
  (社員マスタ shain
   INNER JOIN 所属マスタ shozoku
   ON shain.所属コード = shozoku.所属コード
  ) INNER JOIN 県マスタ ken
  ON shain.出身県コード = ken.県コード


[結果]
所属名 社員コード 氏名 出身県
営業部 001 テスト一郎 東京都
営業部 002 テスト二郎 神奈川県
企画部 001 テスト三郎 千葉県
※[所属マスタ]に所属コード'03'のデータが存在しないため、
 [社員マスタ]の所属コード'03'のデータは取得されない。
<<PR>> ネットワークセキュリティを見直しませんか
価格:300円
現役SEが語るSEの仕事あれこれ-これから就職を希望する人へ-
価格:300円