SQLについてお教え頂けませんでしょうか?
在庫テーブル
・ID
・数量
データ
001,1
001,3
002,3
002,2
002,4
003,2
商品テーブル
・ID
データ
001
002
003
004
やりたいこと:
在庫テーブルには重複しているIDがあります。
商品テーブルには重複しているIDはありません。
在庫テーブルの重複を削除したIDと商品テーブルのIDをinner joinで結びたいと思います。
・select distinct ID FROM 在庫テーブル
・select ID FROM 商品テーブル
この2つのjoin方法がわかりません。
結果として、
001
002
003
を取得したいいです。宜しくお願いします。
ちなみに
select ID from 商品テーブル inner join 在庫テーブル 商品テーブル.ID = exists(select distinct ID from 在庫テーブル)
というコードを書きましたが、動きませんでした・・・抽出データが0件でした・・・
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
等とやって、「商品の在庫量が知りたいです」となるんですけど・・・
さて、いったい何がやりたいのでしょうか?
「いろいろとやりたいこと」の内容を書かれた方が、的確な答えが返ってくると思います。
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;
これで要件を満たしてますか。
出力結果は、前の方のと同じですが。
No.1
- 回答日時:
むしろ
select distinct ID from 在庫テーブル
だけでよいのでは?
もしかして在庫テーブルにあるIDが必ずしも商品テーブルにあるとは
限らないということですか?であれば
select distinct 在庫テーブル.ID from 在庫テーブル
inner join 商品テーブル on 在庫テーブル.ID=商品テーブル.ID
みたいなやり方でしょうか?
ご回答有難うございます。色々やりたい事があり、
select distinct ID from 在庫テーブルや
select distinct 在庫テーブル.ID from 在庫テーブル
inner join 商品テーブル on 在庫テーブル.ID=商品テーブル.ID
では要件を満たせないのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
男性と2人で飲食店に行きテーブ...
-
L2SWはARPテーブルを持っている?
-
アルパインデザインのキッチン...
-
[ExcelのVBA]テーブル名が更新...
-
アクセスでテーブルのデザイン...
-
「テーブルに座って……」という...
-
会社の飲み会の幹事になり、座...
-
MySQLで複数テーブルを作成する
-
phpMyAdminの「リレーションを...
-
複雑なSQL文について
-
オーダーの覚え方について
-
お金持ちのテーブル
-
人の前を通る場合について
-
面接のときテーブルが正面に。...
-
取数計算
-
ACCESS VBA でテーブルの定義だ...
-
まるいテーブル 円い 丸い 漢字...
-
席の移動が、当たり前ですか?
-
飲み会で、座敷orテーブルどち...
-
パッケージなどの印刷がテーブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
男性と2人で飲食店に行きテーブ...
-
外部キーだけのテーブル(主キ...
-
お金持ちのテーブル
-
テーブルリンク リンク元を知...
-
飲み会で、座敷orテーブルどち...
-
「テーブルに座って……」という...
-
面接のときテーブルが正面に。...
-
会社の飲み会の幹事になり、座...
-
オーダーの覚え方について
-
テーブル(構造)のコピー
-
論理名とコメント構文(?)について
-
MySQLで複数テーブルを作成する
-
SQL クエリ データ数
-
SQL 外部結合
-
アクセスのリンクテーブル一覧...
-
【エクセル】データテーブルの...
-
【PHP】SQL文のSUM関数で出力し...
-
件数の多い順にselect
-
1対1のリレーション(主キー同...
おすすめ情報