Anúncio
Anúncio

Mais conteúdo relacionado

Mais de iPride Co., Ltd.(20)

Último(20)

Anúncio

SQLの内部結合と外部結合について

  1. SQLの内部結合と外部結合に ついて 3月24日 頭文字K
  2. 目次 • まえがき • INNER JOIN句 • OUTER(RIGHT,LEFT)JOIN句 • まとめ
  3. まえがき • 勉強期間 • 2日間 • 勉強範囲 • JOIN句を勉強しました。 • (INNER,LEFT,RIGHT)
  4. まえがき • 以降のSQL文は次のテーブルに対して行うものとします。 【staffテーブル】 id name 1 開発 3 法務 5 企画 6 販売 【deptテーブル】 id name deptid 1 山田 1 2 本田 4 3 近藤 6 4 西 1 5 爆走蛇亜 3
  5. INNER JOIN句(内部結合)の基本構文 SELECT {テーブル名.列名1,・・・} FROM {テーブル名1} [INNER] JOIN {テーブル名2} ON {結合条件}; • 2つ以上のテーブルから結合条件に一致する行のみを取得します。 * {}で囲まれた箇所は、具体的な文字列・値に置き換えて使います。 * []で囲まれた箇所は、書かなくても使えます。
  6. 実行例 • 以下のSQL文を使用します。 SELECT * FROM staff [INNER] JOIN dept ON staff.deptid = dept.id; id name deptid id name 1 山田 1 1 開発 3 近藤 6 6 販売 4 西 1 1 開発 5 爆走蛇亜 3 3 法務 } deptidとidの値が一緒の行を結合して取得。 結合するテーブルを指定
  7. OUTER JOIN句(外部結合)の基本構文 SELECT {テーブル名.列名1,・・・} FROM {テーブル名1} {LEFT OR RIGHT} [OUTER] JOIN {テーブル名2} ON {結合条件}; • 2つ以上のテーブルから結合条件に一致しない行も取得します。
  8. 実行例 SELECT * FROM staff RIGHT JOIN dept ON staff.deptid = dept.id; id name deptid id name 1 山田 1 1 開発 3 近藤 6 6 販売 4 西 1 1 開発 5 爆走蛇亜 3 3 法務 NULL NULL NULL 5 企画 • 以下のSQL文を使用します。 右側のテーブル(dept)にしか無い、id 5の部署の行を取得します。 対応する左側(staff)のテーブルの行 にはNULLが格納されます。
  9. 実行例 SELECT * FROM staff LEFT JOIN dept ON staff.deptid = dept.id; id name deptid id name 1 山田 1 1 開発 4 西 1 1 開発 5 爆走蛇亜 3 3 法務 3 近藤 6 6 販売 2 本田 4 NULL NULL 左側のテーブル(staff)にしか無い、 deptid4のスタッフ行を取得します。 対応する右側(dept)のテーブルの行 にはNULLが格納されます。 • 以下のSQL文を使用します。
  10. JOIN句の補足 ・テーブルを3つ結合したい場合 SELECT {テーブル名.列名1,・・・} FROM {テーブル名1} {LEFT OR RIGHT} [OUTER] JOIN {テーブル名2} ON {結合条件} {LEFT OR RIGHT} [OUTER] JOIN {テーブル名3} ON {結合条件}; • JOIN {テーブル名2,テーブル名3}のような書き方はできない テーブル1とテーブル2の結合結果にテーブル3を結合します。
  11. まとめ • 内部結合と外部結合の違いは結合条件に一致しない行 も取得するかどうか • テーブルを2つ以上結合したい場合はJOIN句を追加で 書く必要がある。
Anúncio