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

Mais conteúdo relacionado

Mais de iPride Co., Ltd.

AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
 

Mais de iPride Co., Ltd. (20)

AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
 
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
 
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
 
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
 
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
 
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものですAWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
 
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門  2024/01/26の勉強会で発表されたものです【アイ・プライド】AWS SAM入門  2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
 
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
 
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
 
OpenID Connectについて
OpenID ConnectについてOpenID Connectについて
OpenID Connectについて
 
画像生成AIの問題点
画像生成AIの問題点画像生成AIの問題点
画像生成AIの問題点
 
AI入門
AI入門AI入門
AI入門
 
MVCになぞらえて理解するReact
MVCになぞらえて理解するReactMVCになぞらえて理解するReact
MVCになぞらえて理解するReact
 
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
 
OAuth2.0について
OAuth2.0についてOAuth2.0について
OAuth2.0について
 
ゼロトラストについて学んだこと
ゼロトラストについて学んだことゼロトラストについて学んだこと
ゼロトラストについて学んだこと
 
Recoilライブラリを 触ってみる
Recoilライブラリを 触ってみるRecoilライブラリを 触ってみる
Recoilライブラリを 触ってみる
 
ReactでuseEffect()を減らしたい話
ReactでuseEffect()を減らしたい話ReactでuseEffect()を減らしたい話
ReactでuseEffect()を減らしたい話
 
AIについて学んだこと ~ AIとは? ~
AIについて学んだこと ~ AIとは? ~AIについて学んだこと ~ AIとは? ~
AIについて学んだこと ~ AIとは? ~
 
単一責任の原則について
単一責任の原則について単一責任の原則について
単一責任の原則について
 

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