質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

820閲覧

条件ごとに合計数を取得するSQL文

bws

総合スコア98

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2018/12/10 10:21

編集2018/12/10 10:24

やりたいこと

以下の三つのテーブル連結してorders.taxonomyごとに商品の合計数を取り出したいです。

orders.taxonomy = 0

products.namesum(quantity)orders.taxonomy
商品A210
商品B90
商品C10

orders.taxonomy = 1

products.namesum(quantity)orders.taxonomy
商品A191
商品B201
商品C31

テーブル

productsテーブル

codename
1商品A
2商品B
3商品C

ordersテーブル

codedatetaxonomy
1xxxx-xx-xx0
2xxxx-xx-xx1
3xxxx-xx-xx0
4xxxx-xx-xx0

order_productsテーブル
|code|code_orders|code_products|quantity
|:--|:--|:--|
|1|4|1|10|
|2|2|2|7|
|3|3|3|5|
|4|1|1|10|
|5|4|1|10|
|6|2|2|7|
|7|3|3|5|
|8|1|1|10|

困っていること

以下のように二回やることで取り出すことには成功しています。
二回接続するのはしょうがないのでしょうか?ご教授願います。

SQL

1SELECT products.name, SUM(order_products.quantity) 2FORM products, orders, order_products 3WHERE products.code = order_products.code_products 4AND orders.code = order_products.code_orders 5AND orders.taxonomy = 0 6 7SELECT products.name, SUM(order_products.quantity) 8FORM products, orders, order_products 9WHERE products.code = order_products.code_products 10AND orders.code = order_products.code_orders 11AND orders.taxonomy = 1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

一度に取得という事なら、以下ではどうでしょう。

SQL

1SELECT orders.taxonomy, products.name, SUM(order_products.quantity) 2FORM products, orders, order_products 3WHERE products.code = order_products.code_products 4AND orders.code = order_products.code_orders 5AND orders.taxonomy in (0,1) 6group by orders.taxonomy, products.name

投稿2018/12/10 10:33

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bws

2018/12/10 10:44

CASE THENなどで難しく考えすぎておりました。 希望通り取得できました、回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問