• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:inner joinでサブクエリ)

inner joinでサブクエリの使い方を学ぼう

このQ&Aのポイント
  • 在庫テーブルと商品テーブルのIDを結合する方法について教えてください。
  • 在庫テーブルの重複したIDを削除し、商品テーブルと結合したいです。
  • 現在のコードは正しく動作していないようです。抽出データが0件です。

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

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.3

 質問の例題が、あまりにも省略されている為に、正確な要件が解らなくなってしまっています。  おそらく、商品テーブルにも在庫テーブルにも、そのほかのフィールドがあるはずですよね。そうで無いと、在庫テーブルはレコードの特定が出来ませんし、商品テーブルに至っては存在価値を疑ってしまいますので・・・  で、質問の結合方法も、そのほかのフィールドがらみで方法が変わってきそうです。  本当に、質問内容だけでしたら、一番単純な解は、 select distinct ID from 在庫テーブル  です。結合の必要なんてありません。  こんなのも、いちおうあり・・・ですが・・・  select distinct z.ID from 商品テーブル s join 在庫テーブル z on s.ID=z.ID  これで、少なくとも、商品テーブルに存在する商品IDのうち、在庫テーブルに存在する商品の重複の無いIDが取得できます。が・・・普通、商品テーブルに存在しない商品IDてのが想像しがたいので、意味があるかどうか・・・  普通は、この類のテーマだと、 select s.ID, sum(z.数量) from 商品テーブル s join 在庫テーブル z on s.ID=z.ID group by s.ID  等とやって、「商品の在庫量が知りたいです」となるんですけど・・・  さて、いったい何がやりたいのでしょうか?  「いろいろとやりたいこと」の内容を書かれた方が、的確な答えが返ってくると思います。

mellow91
質問者

お礼

ご回答ありがとうございます。もう一度、自分のやりたいことを再確認して質問させて頂きます。ありがとうございました!

その他の回答 (2)

回答No.2

どんな要件なのか不明ですが、 > 在庫テーブルの重複を削除したIDと商品テーブルのIDをinner joinで結びたいと思います。 > > ・select distinct ID FROM 在庫テーブル > ・select ID FROM 商品テーブル こういうことかなぁ? select 商品テーブル.ID FROM 商品テーブル inner join (select distinct ID FROM 在庫テーブル) T ON 商品テーブル.ID = T.ID; これで要件を満たしてますか。 出力結果は、前の方のと同じですが。

mellow91
質問者

お礼

ご回答ありがとうございます。もう一度、自分のやりたいことを再確認して質問させて頂きます。ありがとうございました!

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

むしろ select distinct ID from 在庫テーブル だけでよいのでは? もしかして在庫テーブルにあるIDが必ずしも商品テーブルにあるとは 限らないということですか?であれば select distinct 在庫テーブル.ID from 在庫テーブル inner join 商品テーブル on 在庫テーブル.ID=商品テーブル.ID みたいなやり方でしょうか?

mellow91
質問者

お礼

ご回答有難うございます。色々やりたい事があり、 select distinct ID from 在庫テーブルや select distinct 在庫テーブル.ID from 在庫テーブル inner join 商品テーブル on 在庫テーブル.ID=商品テーブル.ID では要件を満たせないのです。

関連するQ&A