INNER JOIN (内部結合)を使ってデータを取得する
INNER JOIN (内部結合)を使ってみよう
「 SQL の基本 」 のコーナーでは、ひとつのテーブルからレコードを取得する方法を学びました。
今回は INNER JOIN (内部結合)を使って、二つのテーブルを結合して値を取得してみましょう。
こちら のスクリプトを実行して、Student・Test・TestResult テーブルを再生成しておいてください。 SQL の基本の時と少し値が違っています。
INNER JOIN (内部結合)
INNER JOIN を使ってテーブルを結合すると、ON で指定した条件が両方のテーブルでマッチするレコードのみが取得されます。
例えば、次のような TestResult テーブルと Student テーブルがあります。
[ TestResult テーブル ]
[ Student テーブル ]
StudentID がマッチするという条件で INNER JOIN することによって、TestResult テーブルの TestID = 2 の結果と一緒に Student の名前をこのように取得することができます。
SELECT TR.*, S.FirstName, S.LastName FROM TestResult AS TR INNER JOIN Student AS S ON TR.StudentID = S.StudentID WHERE TestID = 2;
[ 実行結果 ]
下のように、両方のテーブルに StudentID が存在している、 StudentID が 1, 3, 4 のレコードのみが取得されましたね。
ちなみに、INNER JOIN はクエリーデザイナーなどでデフォルトで、また JOIN とだけ書くと INNER JOIN のことになります。
次は、LEFT (OUTER) JOIN (左外部結合)を使ってデータを取得してみましょう。