「Database 結合」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
+ | [[Database]] | [[SQL]] | | ||
==[[Database 結合]]== | ==[[Database 結合]]== | ||
− | + | ||
− | === | + | ===INNER JOIN=== |
[[File:0327_join01.jpg]] | [[File:0327_join01.jpg]] | ||
+ | |||
=====例===== | =====例===== | ||
− | SELECT * | + | SELECT * FROM T1 INNER JOIN T2 |
ON T1.KEY = T2.KEY | ON T1.KEY = T2.KEY | ||
− | + | <blockquote>対の行で構成</blockquote> | |
− | ===LEFT | + | ===LEFT OUTER JOIN=== |
[[File:0328_join02.jpg]] | [[File:0328_join02.jpg]] | ||
=====例===== | =====例===== | ||
− | SELECT * | + | SELECT * FROM T1 LEFT OUTER JOIN T2 |
ON T1.KEY = T2.KEY | ON T1.KEY = T2.KEY | ||
− | + | <blockquote>対の行、および T1 の対になっていない。各行(※)と T2 のヌル行との連結</blockquote> | |
− | === | + | ===RIGHT OUTER JOIN=== |
[[File:0329_join03.jpg]] | [[File:0329_join03.jpg]] | ||
=====例===== | =====例===== | ||
− | SELECT * | + | SELECT * FROM T1 RIGHT OUTER JOIN T2 |
ON T1.KEY = T2.KEY | ON T1.KEY = T2.KEY | ||
− | + | <blockquote>対の行、および T2 の対になっていない各行(※)と T1 のヌル行との連結</blockquote> | |
===外部結合の注意点=== | ===外部結合の注意点=== | ||
− | + | <blockquote>※ ON以下の結合条件に、行の絞込み条件を記述してはいけない。対になっていない各行も出力されるため、絞込み条件は機能しない。</blockquote> | |
====NG==== | ====NG==== | ||
− | SELECT * | + | SELECT * FROM T1 LEFT OUTER JOIN T2 |
ON T1.KEY = T2.KEY | ON T1.KEY = T2.KEY | ||
AND T1.KEY = '1' | AND T1.KEY = '1' | ||
− | + | <blockquote>T1.KEY1 で絞り込まれてから結合されるのではないため、T1.KEY = '1' の条件は適用されない。</blockquote> | |
====OK==== | ====OK==== | ||
− | SELECT * | + | SELECT * FROM T1 LEFT OUTER JOIN T2 |
ON T1.KEY = T2.KEY | ON T1.KEY = T2.KEY | ||
− | + | WHERE | |
T1.KEY = '1' | T1.KEY = '1' |
2022年5月19日 (木) 15:09時点における最新版
目次
Database 結合
INNER JOIN
例
SELECT * FROM T1 INNER JOIN T2 ON T1.KEY = T2.KEY
対の行で構成
LEFT OUTER JOIN
例
SELECT * FROM T1 LEFT OUTER JOIN T2 ON T1.KEY = T2.KEY
対の行、および T1 の対になっていない。各行(※)と T2 のヌル行との連結
RIGHT OUTER JOIN
例
SELECT * FROM T1 RIGHT OUTER JOIN T2 ON T1.KEY = T2.KEY
対の行、および T2 の対になっていない各行(※)と T1 のヌル行との連結
外部結合の注意点
※ ON以下の結合条件に、行の絞込み条件を記述してはいけない。対になっていない各行も出力されるため、絞込み条件は機能しない。
NG
SELECT * FROM T1 LEFT OUTER JOIN T2 ON T1.KEY = T2.KEY AND T1.KEY = '1'
T1.KEY1 で絞り込まれてから結合されるのではないため、T1.KEY = '1' の条件は適用されない。
OK
SELECT * FROM T1 LEFT OUTER JOIN T2 ON T1.KEY = T2.KEY WHERE T1.KEY = '1'
© 2006 矢木浩人