| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Database 結合」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
 +
[[Database]] | [[SQL]] |
 
==[[Database 結合]]==
 
==[[Database 結合]]==
[[Database]] | [[SQL]] |
+
 
 
===INNER JOIN===
 
===INNER JOIN===
 
[[File:0327_join01.jpg]]
 
[[File:0327_join01.jpg]]
 +
 
=====例=====
 
=====例=====
 
  SELECT * FROM T1 INNER JOIN T2
 
  SELECT * FROM T1 INNER JOIN T2
 
  ON T1.KEY = T2.KEY
 
  ON T1.KEY = T2.KEY
  
<blockquote>対の行で構成</blockquote>
+
<blockquote>対の行で構成</blockquote>
  
 
===LEFT OUTER JOIN===
 
===LEFT OUTER JOIN===
15行目: 17行目:
 
  ON T1.KEY = T2.KEY
 
  ON T1.KEY = T2.KEY
  
&lt;blockquote&gt;対の行、および T1  の対になっていない。各行(※)と T2  のヌル行との連結&lt;/blockquote&gt;
+
<blockquote>対の行、および T1  の対になっていない。各行(※)と T2  のヌル行との連結</blockquote>
  
  
24行目: 26行目:
 
  ON T1.KEY = T2.KEY
 
  ON T1.KEY = T2.KEY
  
&lt;blockquote&gt;対の行、および T2  の対になっていない各行(※)と T1  のヌル行との連結&lt;/blockquote&gt;
+
<blockquote>対の行、および T2  の対になっていない各行(※)と T1  のヌル行との連結</blockquote>
  
 
===外部結合の注意点===
 
===外部結合の注意点===
&lt;blockquote&gt;※ ON以下の結合条件に、行の絞込み条件を記述してはいけない。対になっていない各行も出力されるため、絞込み条件は機能しない。&lt;/blockquote&gt;
+
<blockquote>※ ON以下の結合条件に、行の絞込み条件を記述してはいけない。対になっていない各行も出力されるため、絞込み条件は機能しない。</blockquote>
 
====NG====
 
====NG====
 
  SELECT * FROM T1 LEFT OUTER JOIN T2
 
  SELECT * FROM T1 LEFT OUTER JOIN T2
33行目: 35行目:
 
  AND T1.KEY = '1'
 
  AND T1.KEY = '1'
  
&lt;blockquote&gt;T1.KEY1 で絞り込まれてから結合されるのではないため、T1.KEY = '1' の条件は適用されない。&lt;/blockquote&gt;
+
<blockquote>T1.KEY1 で絞り込まれてから結合されるのではないため、T1.KEY = '1' の条件は適用されない。</blockquote>
  
 
====OK====
 
====OK====

2022年5月19日 (木) 15:09時点における最新版

Database | SQL |

Database 結合

INNER JOIN

0327 join01.jpg

SELECT * FROM T1 INNER JOIN T2
ON T1.KEY = T2.KEY

対の行で構成

LEFT OUTER JOIN

0328 join02.jpg

SELECT * FROM T1 LEFT OUTER JOIN T2
ON T1.KEY = T2.KEY

対の行、および T1 の対になっていない。各行(※)と T2 のヌル行との連結


RIGHT OUTER JOIN

0329 join03.jpg

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'