• 締切済み

inner join,left join, right join  について

3rd_001の回答

  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.3

一応、実SQLを載せておきます。 ※机上で書いてて合っているか不安になったので。 create table 表1 ( col1 char(1) ); create table 表2 ( col1 char(1) ); insert into 表1 values('A'); insert into 表1 values('B'); insert into 表1 values('C'); insert into 表2 values('C'); insert into 表2 values('D'); insert into 表2 values('E'); select a.col1,b.col1 from 表1 a inner join 表2 b on a.col1 = b.col1 order by 1,2; 表1 表2 ----- ----- C C select a.col1,b.col1 from 表1 a left outer join 表2 b on a.col1 = b.col1 order by 1,2; 表1 表2 ----- ----- A NULL B NULL C C select a.col1,b.col1 from 表1 a right outer join 表2 b on a.col1 = b.col1 order by 1,2; 表1 表2 ----- ----- C C NULL D NULL E select a.col1,b.col1 from 表1 a full outer join 表2 b on a.col1 = b.col1 order by 1,2; 表1 表2 ----- ----- A NULL B NULL C C NULL D NULL E

inuoyogi7
質問者

お礼

申し訳ありません。 お礼の投稿、遅くなりました。 それぞれの違い、よく理解することができました。 ありがとうございました。

関連するQ&A

  • inner join left joinについて

    inner join left joinの動きについては 理解しているつもりなのですが どういったテーブルの時innerにして どんなテーブルの時left joinにするかが わかりません inner join left join の選択方法 ※どっちを使えばよいかの見極め方について 教えて下さい

  • Left Joinについて

    Left Joinについて select * From shohin left join meisho on sh03 = me02 and me01 = 1 where **** select * From shohin left join meisho on sh03 = me02 where me01 = 1 left joinの中に me01 = 1があるパターンとwhere句に me01 = 1 があるパターンで検索結果が変わってくる具体的にどう変わるのでしょうか 良く理解ができていないので教えてください

  • Inner join と Left joinの明確な違いは?

    Inner join と Left joinの違いがよくわかりません。 教えてください。

  • LEFT JOINとRIGHT JOINについて

    SQL初心者です。 基本的な質問ですみません、教えてください。 LEFT JOINとRIGHT JOINについて、どちらのテーブルを左側、どちらのテーブルを右側にするのかが分かっていません。どういう基準で左側、どういう基準で右側と考えれてばいいのでしょうか? 宜しくお願いします。

  • Inner Joinについて

    SQLについてお教え頂けませんでしょうか? 在庫テーブル ・ID(プライマリーキー) ・数量 データ 001,1 002,2 追加テーブル ・ID(プライマリーキーではない) ・数量 データ 001,3 001,4 002,1 002,2 上記のようなデータがあります。 Updateクエリを実行したときに、追加テーブルにある数量を、在庫テーブルにある数量に足しこみたいです。 欲しい結果は、在庫テーブルのデータが 001,8 002,5 となっていてもらいたいです。 Update 在庫テーブル Inner Join 追加テーブル On 在庫テーブル.ID = 追加テーブル.ID Set 在庫テーブル.数量 = 在庫テーブル.数量 + 追加テーブル.数量 上記のようなSQLを教えてもらったので実行したら問題なくできました。 ただし、どのようなプロセスで結果が得られたのかわかりません。 どうぞ、ご教授お願いいたします。

  • INNER JOINについて

    こんにちは、現在下のWEBでSQLの勉強をしているのですが・・・。 http://www.pursue.ne.jp/jouhousyo/SQLDoc/select21.html INNER JOINについて質問です。 FROM 表名1 INNER JOIN表名2 ON 表名1.フィールド名 = 表名2.フィールド名 このONというコマンド、これは連結するフィールド名を表しているのですよね?これは、無くてはならないコマンドでしょうか。例えば、このウェブの問題だと、売上表.顧客CD=顧客表.顧客CD をする事で、顧客CDがソートされ、同じものが連結されてます。 もし、顧客CDの値が、二つの表で異なった場合、異なった値は切り捨てられ、その行は融合されないと言う事ですよね? なら、例えば普通に二つの表の値を比べたい場合、例えば、 A表: 売り上げ総合、日付、顧客表 B表: 顧客名、売り上げA、売り上げB という表があったとして、表Bの売り上げレートを表Aの総売上で割り、書く平均値を出したい場合、 SELECT  表B.売り上げA / 表A.売り上げ総合, 表B.売り上げB / 表A.売り上げ総合 FROM 表A INNER JOIN 表B として、ONを使わなくても大丈夫でしょうか?

    • ベストアンサー
    • MySQL
  • ちょっと見かけないinner joinについて

    どなたか以下の構文について教えて下さい。 どこのDBMSで使用されるものなのでしょう? SELECT B.項目1, B.項目2, A.項目2, A.項目3 FROM ( ( SELECT * FROM Bテーブル WHERE 項目3>"1" ) B INNER JOIN ( SELECT * FROM Aテーブル WHERE 項目2=10 ) A ON B.項目1=A.項目1; 意味はわかるのですが、普通のinner joinとは違うもので。

  • inner joinについて

    SQLのデータ抽出方法についてお教え下さい。 TABLE_2をdistinctで重複を無くして、TABLE_1とinner joinさせたいです。 select distinct TABLE_2.id と select TABLE_1.ID from TABLE_1 inner join distinct TABLE_2.ID といったようなことをやりたいです。 TABLE_1 ID 001 001 002 002 002 TABLE_2 ID 001 001 002 002 002 環境はMYSQL5.5になります。よろしくお願いいたします。

  • Left Join/Right Join の意味

    Left Join/Right Join を、accessクエリのデザイン画面では使っています。 SQLではLeft Join/Right Join となりますが、この「右」「左」という言葉を使う意味を教えていただけないでしょうか。 #なぜ「右」「左」というのかよくわからないため。 #まことに初歩的な質問だと思いますが。

  • LEFT JOINの使い方

    linkテーブルとcommentテーブルがあります。 下記のようなSQLをPHPから発行すると、 select c.id AS cid, c.pid AS cpid, c.name AS cname, l.id AS id, l.url AS url from comment AS c LEFT JOIN link AS l ON c.pid=l.id order by c.id desc LIMIT 0, 10; $rec['cid'] や $rec['cname'] にはデータがあるのですが $rec['id'] や $rec['url'] にはデータが入っておらずNULLになってしまいます。 ためしに LEFT JOINの左右を下記のように入れ替えみたところ、 select c.id AS cid, c.pid AS cpid, c.name AS cname, l.id AS id, l.url AS url from link AS l JOIN comment AS c LEFT ON c.pid=l.id order by c.id desc LIMIT 0, 10; 今度は $rec['id'] や $rec['url'] にはデータがあるのですが $rec['cid'] や $rec['cname'] にはデータが入っておらずNULLになってしまいました。 どこがおかしいのでしょうか? MYSQLは5.1.22-rcでレンタルサーバーはcoreserverを利用しています。

    • ベストアンサー
    • MySQL