感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

SQLの結合の構文

スポンサーリンク

複数の行をあわせて表示する→UNION

[構文]2つの表の行を集めて表示

SELECT 列名 FROM 表名1
	UNION
	SELECT 列名 FROM 表名2

UNIONでは「重複しているデータを省く」処理も同時に行なっている。

以下のように、それぞれに条件をつけることができる。

SELECT col1 FROM tb1 WHERE col3 >= 30
	UNION
	SELECT col1 FROM tb2 WHERE col_hoge >=200;

複数の抽出結果を合わせて表示する
→重複を許して表示するのはUNION ALL

UNION:重複を除いた集合
UNION ALL:重複もあわせた集合
INTERSECT:共通の集合
MINUS:最初は抽出されて、次は抽出されなかったものの集合

外部キーとは、他の表を参照し、「値を引っ張ってくる」もののこと。

[構文]2つの表を結合する

SELECT 列名 FROM1
	JOIN 結合する表2
	ON1の列 = 表2の列;

内部結合であることをはっきりと示す時は、JOINの部分をINNER JOINと記述する。

retsu1をキーにして結合してSELECTする例

SELECT * FROM table2
	JOIN table1
	ON table2.retsu1 = table1.retsu1;

内部結合は完全に一致するものだけを表示する。
片方にあって、片方にない行は表示されない。

逆に、「存在する行は全て表示させたい」というときは外部結合を使う。
外部結合は両方が一致していなくても、一方の表の行は全て取り出すというものである。

[構文]左外部結合

SELECT 列名 FROM 左に相当する表
	LEFT JOIN 右に相当する表
	ON 左に相当する表の列 = 右に相当する表の列;

<参考>

基礎からのOracle (DVD付) (プログラマの種シリーズ)

基礎からのOracle (DVD付) (プログラマの種シリーズ)