SQLはWHERE句が、テーブルからベーステーブル間の共通フィールドを2行以上を組み合わせるために使用されて参加します。
最も一般的なタイプは、JOIN:SQL INNER JOINは(簡単な登録しよう)、SQL LEFT JOINを、SQL RIGHT JOINを、SQL FULL JOINを、 内側の前に参加しているの1、最後の3つのが外部リンク。
我々は2つのテーブルを持っていると仮定し、表Aには表の左側で、表Bは、右の表です。
一、INNER JOINを
Enが、接続の最も一般的なタイプであるだけで、一致する接続ラインを。
内部には、結合構文
COLUMN_NAME(複数可)を選択 テーブル1から INNER表2をJOIN ON テーブル1.column_name =テーブル2.column_name
注: INNER JOINをJOINのは同じです
INNERが集中しているJOINの結果は、1と2の交点です。
表A内SELECT * FROMテーブルBに参加 表A.id =表B.idに
次のように上記のSQLの出力結果を実行すると、以下のとおりです。
ID | 名前 | 住所 |
1 | グーグル | 米国 |
3 | 微博 | 中国 |
二、LEFT JOINを
LEFT JOINをリターンを左テーブルのすべての行と右の表の行は、オン状態満たす適切な場所データがNULLに対応するテーブルのこの行、一致テーブルが残っていない場合は、表の右の列。
LEFT JOIN構文は、
COLUMN_NAME(複数可)を選択 テーブル1から LEFTは表2をJOIN テーブル1.column_name ON =表2.column_name
注意:一部のデータベースでは、LEFTは、LEFT OUTER JOINを呼ばれて登録しよう
LEFTは、表1、表2の完全なセットに参加し、一致の値、置換された場所ヌルの一致する値を有します。
表Aから選択*表Bに加入左 表A.id =表B.idに
次のように上記のSQLの出力結果を実行すると、以下のとおりです。
ID | 名前 | 住所 |
1 | グーグル | 米国 |
2 | 淘宝 | ヌル |
3 | 微博 | 中国 |
4 | フェイスブック | ヌル |
三、RIGHT JOINを
RIGHT JOIN テーブルのすべての行右リターンとテーブルの左列は、ON条件を満たし一致する表の行が残っていない場合は、右表の、その行は、データテーブルに対応する代わりのNULLと左。
RIGHT JOIN構文
COLUMN_NAME(複数可)を選択し 、表1から 表2をJOIN RIGHTを 表1.column_name =テーブル2.column_name ON
注:一部のデータベースでは、RIGHTと呼ばれるJOIN RIGHT OUTER JOINは
表2、および表1の値は完全なセットの権利を有するJOIN生成は、置換された場所ヌルの一致する値に一致します。
表Aから選択*右の表Bに参加 表A.id =表B.idに
次のように上記のSQLの出力結果を実行すると、以下のとおりです。
ID | 名前 | 住所 |
1 | グーグル | 米国 |
5 | ヌル | 中国 |
3 | 微博 | 中国 |
6 | ヌル | 米国 |
四、FULL OUTER JOINを
FULLからなり、JOIN すべての左と右のテーブルの復帰行。テーブルの他のデータテーブルの行は、行と一致しない場合、そのデータは、反対NULLで置換されています
FULL OUTERはJOIN構文
COLUMN_NAME(複数可)を選択し 、表1から 表2を完全外部結合を テーブル1.column_name =テーブル2.column_name ON
FULL OUTER 1及び2と発電セットをJOIN。レコードが一致しなかったため、それがヌル値としてご注文されることに注意してください。
表A完全外部SELECT * FROMテーブルBに参加 表A.id =表B.idに
次のように上記のSQLの出力結果を実行すると、以下のとおりです。
ID | 名前 | 住所 |
1 | グーグル | 米国 |
2 | 淘宝 | ヌル |
3 | 微博 | 中国 |
4 | フェイスブック | ヌル |
5 | ヌル | 中国 |
6 | ヌル | 米国 |