JOIN (結合)の基本と種類について
JOIN (結合)の基本と種類について
複数のテーブルからデータを取得する際に必要になってくるのが、JOIN (結合)です。
SQL Server の JOIN のタイプには次のようなものがあります。
JOIN の種類
後ほど、ひとつひとつ詳しくサンプルと共に見ていきますが、ここでざっくりと種類と違いをご紹介します。
INNER JOIN (内部結合)
ON で指定した条件が、結合する両方のテーブルにマッチするレコードのみを返します。
LEFT (OUTER) JOIN (左外部結合)
結合の左側のテーブルの全レコードと、ON で指定した条件がマッチする右側のレコードのみを返します。
RIGHT (OUTER) JOIN (右外部結合)
結合の右側のテーブルの全レコードと、ON で指定した条件がマッチする左側のレコードのみを返します。
混乱しやすいので、私はあんまり使わないです。 そのような状況では、テーブルの左右を入れ替えてLEFT (OUTER) JOIN を使います。
FULL (OUTER) JOIN (完全外部結合)
ON で指定した条件がマッチするレコードに加えて、マッチしない左右の両方のテーブルのレコードも返します。
CROSS JOIN (クロス結合)
CROSS JOIN は他の 4 つの JOIN と少し違って、ON で条件を指定せず、左右両方のテーブルの全てのコンビネーションの行を返します。
結果で得られるレコード数は [ 左のテーブルのレコード数 ] x [ 右のテーブルのレコード数 ] になります。
便利な時があるのですが、ちょっとわかりにくいので後ほどサンプルと共に説明します。
それでは、INNER JOIN (内部結合)を使ってデータを取得してみましょう。