INNER JOIN (内部結合)を使ってデータを取得する

INNER JOIN (内部結合)を使ってみよう

SQL の基本 」 のコーナーでは、ひとつのテーブルからレコードを取得する方法を学びました。

今回は INNER JOIN (内部結合)を使って、二つのテーブルを結合して値を取得してみましょう。

こちら のスクリプトを実行して、Student・Test・TestResult テーブルを再生成しておいてください。 SQL の基本の時と少し値が違っています。

INNER JOIN (内部結合)

INNER JOIN を使ってテーブルを結合すると、ON で指定した条件が両方のテーブルでマッチするレコードのみが取得されます。

JOIN (結合)の基本と種類について 1


例えば、次のような TestResult テーブルと Student テーブルがあります。

[ TestResult テーブル ]
INNER JOIN (内部結合)を使ってデータを取得する 1

[ Student テーブル ]
INNER JOIN (内部結合)を使ってデータを取得する 2


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;

[ 実行結果 ]
INNER JOIN (内部結合)を使ってデータを取得する 3

下のように、両方のテーブルに StudentID が存在している、 StudentID が 1, 3, 4 のレコードのみが取得されましたね。

INNER JOIN (内部結合)を使ってデータを取得する 4


ちなみに、INNER JOIN はクエリーデザイナーなどでデフォルトで、また JOIN とだけ書くと INNER JOIN のことになります。


次は、LEFT (OUTER) JOIN (左外部結合)を使ってデータを取得してみましょう。

© 2010-2024 SQL Server 入門