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円