■結合
SELECT * FROM [TableName1],[TableName2]
WHERE [TableName1].[ColName1] = [TableName2].[ColName2];
[TableName1]と[TableName2]を結合し、[TableName1].[ColName1]と[TableName2].[ColName2]が同じ値の場合表示する。
WHERE などで条件を指定しない場合、互いのテーブル総当りで表示される。
■エイリアスの利用
エイリアスを利用してコーディングを節約。
SELECT * FROM [TableName1]
AS [A],[TableName2] AS
[B] WHERE [A].[ColName1] = [B].[ColName2];
※ASは省略可能
■結合(CROSS JOIN)
総当りで結合
SELECT * FROM [TableName1] CROSS
JOIN [TabelName2];
■結合(NATURAL JOIN)
同じ列名で結合
SELECT * FROM [TableName1] NATURAL
JOIN [TabelName2];
■結合(JOIN~ON)
条件で結合
SELECT * FROM [TableName1] JOIN
[TableName2] ON [TableName1].[ColName1]
= [TableName2].[ColName1];
■結合(JOIN~USING)
値が等しいことを条件に結合
SELECT * FROM [TableName1] JOIN
[TableName2] USING([ColName1]);
※前段ONの結果と似ているが、[ColName1]は結果に1度しか現れない。
■結合(OUTER JOIN)
結合する相手のデータが存在しない場合NULLで補完し表示。
SELECT * FROM [TableName1] LEFT
OUTER JOIN [TableName2] USING([ColName]);
SELECT * FROM [TableName1] LEFT
OUTER JOIN [TableName2] ON [TableName1].[ColName1]
= [TableName2].[ColName1];
SELECT * FROM [TableName1] NATURAL
LEFT OUTER JOIN [TableName2];
※LEFT=>右のテーブル[TableName2]の値がなくても、左のテーブル[TableName1]のレコードはすべて表示されます。
※RIGHTでは逆の考え方。
※FULLで左右のテーブルのレコードを残すことができる。