記事インデックス



  • join 命令

    1. 内部結合

      内部結合とは複数のテーブル間で同一の条件を満たすレコードのみを抽出して表示する方法です.この内部結合を使用するには,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);+ エンターキー

      作成した結果を下図に示します.
      44 1

    2. 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”を示しています.
      45 2

      結合条件に使用した列を表示しないようにして見やすくするには,select s_name, t_name, seiseki.score from subject inner join seiseki on subject.id=seiseki.id;+ エンターキーと入力します.
      46 2
    3. using を用いた内部結合

      select * from テーブル1 inner join テーブル2 using ( 列名 );
      例 としてid 列を結合条件として,subjectテーブルにseisekiテーブルを内部結合します.それには,select * from subject inner join seiseki using (id);+ エンターキーと入力します.ここでは,subjectおよびseiskiテーブル両方に”id”フィールドが含まれており,同じ”id”を持つ行を1つにま とめています.その様子を下図に示します.
      47 2

      先ほどのon を用いた内部結合と同様 に,結合条件に使用した列を表示しないようにして見やすくするには,select s_name, t_name, seiseki.score from subject inner join seiseki using(id);+ エンターキーと入力します.その様子を下図に示します.
      48 2
    4. where を用いた内部結合

      select * from テーブル1, テーブル2, テーブル3,... where 条件;


      from以下にテーブルを列挙し,whereに条件を書くことで, 前 例と同じ結果が得られます.それにはselect * from subject, seiseki where seiseki.id=subject.id;+ エンターキーと入力します.その様子を下図に示します.
      49 1

      この方法を用いると,テーブルを3つ以上連 結することもできます.なお,inner joinを用いた場合でも同様にテーブルを3つ以上連結できますが,ここではその書き方を省略します.

  • JSN Teki is designed by JoomlaShine.com