Page 10 of 16
join 命令
-
内部結合
内部結合とは複数のテーブル間で同一の条件を満たすレコードのみを抽出して表示する方法です.この内部結合を使用するには,select命令にinner join命令とonを付加して条件指定する方法と,onの代わりにusingを付加して結合列を指定する方法があります.この例を示すために,まず”seiseki”というテーブルを作成します.
create table seiseki (id int(10) unique not null, score int(10) not null);+ エンターキー
insert into seiseki values(01, 80);+ エンターキー
insert into seiseki values(02, 100);+ エンターキー
insert into seiseki values(03, 90);+ エンターキー
作成した結果を下図に示します. -
onを用いた内部結合
select * from テーブル1 inner join テーブル2 on 結合条件;
例としてid 列を結合条件として,subjectテーブルにseisekiテーブルを内部結合します.それには,select * from subject inner join seiseki on subject.id=seiseki.id;+ エンターキーと入力します.ここで,”.”はテーブルとフィールドをつなぐ記号であり,たとえば”subject.id”とは,テーブル”subject” の中のフィールド”id”を示しています.
結合条件に使用した列を表示しないようにして見やすくするには,select s_name, t_name, seiseki.score from subject inner join seiseki on subject.id=seiseki.id;+ エンターキーと入力します. -
using を用いた内部結合
select * from テーブル1 inner join テーブル2 using ( 列名 );
先ほどのon を用いた内部結合と同様 に,結合条件に使用した列を表示しないようにして見やすくするには,select s_name, t_name, seiseki.score from subject inner join seiseki using(id);+ エンターキーと入力します.その様子を下図に示します. -
where を用いた内部結合
select * from テーブル1, テーブル2, テーブル3,... where 条件;
from以下にテーブルを列挙し,whereに条件を書くことで, 前 例と同じ結果が得られます.それにはselect * from subject, seiseki where seiseki.id=subject.id;+ エンターキーと入力します.その様子を下図に示します.この方法を用いると,テーブルを3つ以上連 結することもできます.なお,inner joinを用いた場合でも同様にテーブルを3つ以上連結できますが,ここではその書き方を省略します.