【发布时间】:2020-03-04 11:09:55
【问题描述】:
我有四个表:供应商、产品、销售和销售产品。供应商和产品表以一对多的关系关联,供应商可以拥有多个产品,一个产品属于单个供应商。 products 和 sales 表以多对多关系连接,sales_products 表充当连接 products 和 sales 表的中间表。
表格结构示例:
1. suppliers
+----+--------------------+
| id | name |
+----+--------------------+
| 1 | Sup A |
| 2 | Sup B |
| 3 | Cus A |
| 4 | Cus B |
| 5 | Sky Song Fireworks |
+----+--------------------+
2. products
+----+--------------------+-------------+
| id | name | supplier_id |
+----+--------------------+-------------+
| 1 | Pop Pops | 6 |
| 2 | Pop Pops | 5 |
| 3 | Color Pop Pop Snap | 5 |
| 4 | Rubbing Bang | 5 |
| 5 | Kids Bag | 5 |
+----+--------------------+-------------+
3. sales
+----+-----------------+-----------------------+
| id | discount_amount | receipt |
+----+-----------------+-----------------------+
| 4 | NULL | RCT-19-10-12-04/06/51 |
| 5 | 2000 | RCT-19-10-14-07/36/58 |
| 6 | NULL | RCT-19-10-14-07/40/28 |
| 7 | NULL | RCT-19-10-15-12/10/20 |
| 8 | 2000 | RCT-19-10-15-12/14/51 |
+----+-----------------+-----------------------+
4. sale_products
+----+------------+---------+----------+------------+
| id | product_id | sale_id | quantity | unit_price |
+----+------------+---------+----------+------------+
| 1 | 335 | 1 | 4 | 150 |
| 2 | 336 | 2 | 4 | 1000 |
| 3 | 335 | 3 | 5 | 150 |
| 4 | 445 | 4 | 5 | 150 |
| 5 | 564 | 5 | 100 | 200 |
+----+------------+---------+----------+------------+
我想运行一个查询,从销售表中获取产品属于销售一部分的每个供应商的总折扣。查询可能会给出如下结果:
+----+--------------------+----------------+
| id | name | total_discount |
+----+--------------------+----------------+
| 1 | Sup A | 1000 |
| 2 | Sup B | 200 |
+----+--------------------+----------------+
【问题讨论】:
-
您好,您自己尝试过吗?如果是,请告诉我们。
-
您的示例数据不可用,必须用 CREATE TABLE + INSERT INTO 脚本替换。您的样本数据不一致。您想要的结果与示例数据不匹配。您还没有定义结果形成的算法。您还没有表现出解决问题的尝试。
标签: mysql sql join group-by aggregates