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

A 回答 (4件)

出てくる結果が違います。



テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
4               NULL
5               NULL
6               NULL
の6レコードが出力されますが、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
の3レコードしか出力されません。
    • good
    • 13
この回答へのお礼

ありがとうございます。
説明、シンプルでとてもわかりやすかったです。
使わせてくださいね☆

お礼日時:2004/01/09 16:24

対応させるべきはinner joinとouter joinなんですけど、


left join は left outer join と同等です。

innter joinは結合する相手のテーブルに対応するデータが
ある場合のみ結果を返しますが、outer joinは相手の
テーブルに対応するデータが無い場合、そのカラムを
NULLとして返します。

あるouter joinのクエリの結果が
(等幅で見れればいいんだけど)
field1 |field2 |
--------+--------+
Apple  |Red   |
Melon  |NULL  |
Grape  |Purple |
--------+--------+

だとしたら、inner joinは
field1 |field2 |
--------+--------+
Apple  |Red   |
Grape  |Purple |
--------+--------+

のように返します。outer joinは他にright outer joinと
full outer joinがあります。
    • good
    • 3
この回答へのお礼

outer join・・・?
ちょっと調べてみます。ありがとうございました。

お礼日時:2004/01/09 16:26

#1の者です。


先ほどの投稿、以下2点修正します。

>「INNER JOIN」は結合する両方のテーブルにデータがある場合にのみ毛と号の結果データが取得できる、という意味。

→「INNER JOIN」は結合する両方のテーブルにデータがある場合にのみ結合結果データが取得できる、という意味。

>売上伝票番号:00000000001が取得できないのは商品コード:000000003が商品マスタにないからです。

→売上伝票番号:00000000002が取得できないのは商品コード:000000003が商品マスタにないからです。
    • good
    • 0
この回答へのお礼

ありがとうございました!!
スッキリ納得できました。

お礼日時:2004/01/09 16:24

簡単に言いますと、


「INNER JOIN」は結合する両方のテーブルにデータがある場合にのみ毛と号の結果データが取得できる、という意味。
一方、「LEFT JOIN」は片方にデータがなくても結合結果データが取得できる、という意味です。

例えば、
売上テーブルと商品マスタがあったとします。
データは以下のように入ってます。

売上テーブル
売上伝票番号 商品コード
00000000001 000000001
00000000002 000000003

商品マスタ
商品コード 商品名
000000001 テレビ
000000002 パソコン

このとき、

SELECT 売上伝票番号, 商品名
FROM 売上テーブル
INNER JOIN 商品マスタ
ON 売上テーブル.商品コード = 商品マスタ.商品コード

のSQLでは

売上伝票番号 商品名
00000000001 テレビ

が返ってきます。
売上伝票番号:00000000001が取得できないのは商品コード:000000003が商品マスタにないからです。

次に、

SELECT 売上伝票番号, 商品名
FROM 売上テーブル
LEFT JOIN 商品マスタ
ON 売上テーブル.商品コード = 商品マスタ.商品コード

のSQLでは

売上伝票番号 商品名
00000000001 テレビ
00000000002 [NULL]

が返ってきます。
商品コード:000000003は商品マスタにありませんが、商品名はNULLで売上テーブルのデータは取得されます。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

今、見られている記事はコレ!

  • 【長谷川豊】政治とお金は切り離せない

    少し前のことになるのですが、アメリカの下院議会で「議場での座り込みという珍しい行動がありました。 これはアメリカのCNNが報じているんですが、かなり珍しい映像です。アメリカの下院議員たちが議場内で座り込...

  • 私と趣味と結婚と:第27話「自分のタイミング」

    マヤは日々充実したオタクライフを満喫している。年頃の娘に早く結婚して欲しい母親の気持ちを知りつつも、結婚願望はまだ薄い。結婚を巡る面倒臭いやり取りは、いつまで続くのか…。

  • 教えて! しりもと博士:第80話「衛星放送」

    なんでも知っているしりもと博士が、ボーイとガールにいろいろな事を教えてくれます。 二人がこの世の全てを学ぶまで博士は教える事をやめません。

  • 巨乳なんてイヤ!小さい胸になるためのエクササイズ

    胸の大きさに悩んでいる女性はいるだろうか? 映画『ET』、『チャーリーズ・エンジェル』シリーズに出演している女優のドリュー・バリモアは胸の大きさに悩み、胸を小さくする手術を受けていたという。人によっては...

  • 「ゴキブリ嫌い」は思い込み?

    ゴキブリを心の底から嫌っている人は多い。そのカタカナ4文字を目や耳にするのすら汚らわしく、よく頭文字のアルファベットを取って“G”と称されたりするほど、多くの人がゴキブリという存在を嫌悪している。しかし考...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ