• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL LEFT JOIN)

SQL LEFT JOINについての質問

このQ&Aのポイント
  • SQLでのLEFT JOINについて質問があります。在庫テーブルと商品マスタの結合を例にして説明します。
  • LEFT JOINを使用すると、在庫テーブルの全レコードと品番で結んだ商品マスタに存在するデータが返ってきます。
  • しかし、在庫テーブルと商品マスタの結合をせずに在庫テーブルのみをSELECTした場合、レコード件数が異なる可能性があります。これは何か原因がある可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • ks0902
  • ベストアンサー率85% (6/7)
回答No.4

もしかすると、「ON」で条件を指定する際、 テーブルの指定をしてないんじゃないですか? <例1> SELECT * FROM 在庫テーブル LEFT JOIN 商品マスタ ON 在庫テーブル.品番 = 商品マスタ.品番; または <例2> SELECT * FROM 在庫テーブル A LEFT JOIN 商品マスタ B ON A.品番 = B.品番;

anman0201
質問者

お礼

回答ありがとうございます。 無事解決できました。

その他の回答 (3)

  • ks0902
  • ベストアンサー率85% (6/7)
回答No.3

またまたすみません。先程の修正は間違いです・・・ 最初の回答を確認してみて下さい。

  • ks0902
  • ベストアンサー率85% (6/7)
回答No.2

すみません先程の回答を修正します。 >SELECT *  >FROM 在庫テーブル LEFT JOIN 商品マスタ >ON 品番 = 品番 > >として実行すると返ってくる結果は在庫テーブルの全レコードと >品番で結んだ商品マスタに存在するデータってことですか? 商品マスタの品番が重複していなければ、 在庫テーブルの全レコードと品番で結んだ 商品マスタに存在するデータを取得できるはずです。 まずは商品マスタの品番が重複していないこと(1)、(2)の select文を実行して確認して下さい。 (1)select count(品番) as 件数 from 商品マスタ; (2)select sum(件数) as 件数 from (select count(品番) as 件数 from 商品マスタ group by 品番); (1)、(2)共に件数は同一でしょうか?

  • ks0902
  • ベストアンサー率85% (6/7)
回答No.1

>SELECT *  >FROM 在庫テーブル LEFT JOIN 商品マスタ >ON 品番 = 品番 > >として実行すると返ってくる結果は在庫テーブルの全レコードと >品番で結んだ商品マスタに存在するデータってことですか? 商品マスタの品番が重複していなければ、 在庫テーブルの全レコードと品番で結んだ 商品マスタに存在するデータを取得できるはずです。 まずは商品マスタの品番が重複していないこと(1)、(2)の select文を実行して確認して下さい。 (1)select count(品番) from 商品マスタ; (2)select count(品番) from (select 品番 from 商品マスタ group by 品番); (1)、(2)共にcount数は同一でしょうか?