[開発][DB][SQL] テーブル結合

■index
 ・INNER JOIN
 ・FULL OUTER JOIN
 ・LEFT OUTER JOIN
 ・片方だけ
 ・共通部以外
 ・CROSS JOIN

INNER JOIN
共通部分だけ取ってくる


SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name

FULL OUTER JOIN
全部取ってくる
※ DISTINCTされた状態


SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name

LEFT OUTER JOIN
左のを全部取ってくる
※ 共通部分も含む


SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name

□片方だけ
左(右)にしかないのだけ取ってくる


SELECT * FROM TableA
LEFT OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableB.id IS null

□共通部以外
どっちかにしかないのだけ取ってくる


SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
WHERE TableA.id IS null
OR TableB.id IS null

CROSS JOIN
フルフルで取ってくる
※ 重複込

SELECT * FROM TableA
CROSS JOIN TableB

tag:
INNER_JOIN FULL_OUTER_JOIN LEFT_OUTER_JOIN CROSS_JOIN

ref:
http://www.ideaxidea.com/archives/2011/01/sql_join_visually_explained.html
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

tag : SQL INNER_JOIN FULL_OUTER_JOIN LEFT_OUTER_JOIN CROSS_JOIN

2013-01-22 00:55 : 開発 : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud