No.4ベストアンサー
- 回答日時:
出てくる結果が違います。
テーブル1のフィールド1に、
1
2
3
4
5
6
が、
テーブル2のフィールド1に、
1
2
3
7
8
9
が入力されている場合、
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レコードしか出力されません。
No.3
- 回答日時:
対応させるべきは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があります。
No.2
- 回答日時:
#1の者です。
先ほどの投稿、以下2点修正します。
>「INNER JOIN」は結合する両方のテーブルにデータがある場合にのみ毛と号の結果データが取得できる、という意味。
→「INNER JOIN」は結合する両方のテーブルにデータがある場合にのみ結合結果データが取得できる、という意味。
>売上伝票番号:00000000001が取得できないのは商品コード:000000003が商品マスタにないからです。
→売上伝票番号:00000000002が取得できないのは商品コード:000000003が商品マスタにないからです。
No.1
- 回答日時:
簡単に言いますと、
「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で売上テーブルのデータは取得されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
PLSQLの識別子エラー
-
重複するキーから一番古い年月...
-
2つのテーブルから条件に一致...
-
ACCESS 一つのフィールドに複...
-
SQLのORDERBY句について質問です。
-
SQL 2つのテーブルとSUBSTRING...
-
商品コード番号を入力すると商...
-
行方向のデータを横に並べる
-
Access97で数値型からテキスト...
-
sqlのupdate文で質問です。 テ...
-
ACCESS 検索について
-
3つ以上のテーブルをUNIONする...
-
accessのエクスポートエラーに...
-
ACCESSのSQLで、NULLかNULLでな...
-
Access 1レコードずつcsvで出力...
-
Accessにインポートしたら並び...
-
sqlserverで集計結果をUPDATEし...
-
SQLServerで同一条件レコードの...
-
ACCESS2007 フォーム 「バリア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
重複するキーから一番古い年月...
-
2つのテーブルから条件に一致...
-
ACCESS 一つのフィールドに複...
-
行方向のデータを横に並べる
-
主キーの変更
-
PLSQLの識別子エラー
-
ACCESSのコンパイルエラーについて
-
Accessでフィールドを比較した...
-
Inner join と Left joinの明...
-
続.ORACLEのSELECTのソートに...
-
片方だけ抽出する方法(SQL)
-
accessで移動平均する方法
-
SQL 2つのテーブルとSUBSTRING...
-
商品コード番号を入力すると商...
-
Accessユニオンクエリーで2つ...
-
発注テーブルの発注残数を納品...
-
請求と入金のテーブルの作成の...
-
下記のsqlで取得されるレコード...
-
日報計算
おすすめ情報