Mysql 查询 returns 每条记录的重复结果
Mysql query returns duplicate results for each record
我不是 sql 大师,但我有三个表,每个表都添加了一个外键(也许这就是问题所在)
|---------------------| |---------------------| |---------------------|
| DISTINCT_DEALER | | DISTINCT_CUSTOMER | | CUSTOMER_SALES |
|---------------------| |---------------------| |---------------------|
| d_id (pk) | | d_id | | d_id |
|---------------------| |---------------------| |---------------------|
| dealer_address | | dealer_name | | customer_number |
|---------------------| |---------------------| |---------------------|
| dealer_city | | customer_number | | total_sales |
|---------------------| |---------------------| |---------------------|
| dealer_state | | customer_name |
|---------------------| |---------------------|
| dealer_zip | | customer_email |
|---------------------| |---------------------|
我对 distinct_customers d_id 参考 distinct_dealer d_id 有一个 FK,对 d_id 参考 distinct_dealer 的客户销售有一个 FK d_id.
当我 运行 下面这个查询时,它 returns 每条记录重复 54 次(那条记录的总记录数 d_id。
select d.d_id, d.dealer_name, cs.total_sales from dship d
join cs_sales cs on d.d_id = cs.d_id order by d.d_id
看起来它为每个 d_id 返回了一条记录,有人能看出我做错了什么吗?
我想你想要聚合:
select d.d_id, d.dealer_name,
sum(cs.total_sales)
from dship d join
cs_sales cs
on d.d_id = cs.d_id
group by d.d_id;
我不是 sql 大师,但我有三个表,每个表都添加了一个外键(也许这就是问题所在)
|---------------------| |---------------------| |---------------------|
| DISTINCT_DEALER | | DISTINCT_CUSTOMER | | CUSTOMER_SALES |
|---------------------| |---------------------| |---------------------|
| d_id (pk) | | d_id | | d_id |
|---------------------| |---------------------| |---------------------|
| dealer_address | | dealer_name | | customer_number |
|---------------------| |---------------------| |---------------------|
| dealer_city | | customer_number | | total_sales |
|---------------------| |---------------------| |---------------------|
| dealer_state | | customer_name |
|---------------------| |---------------------|
| dealer_zip | | customer_email |
|---------------------| |---------------------|
我对 distinct_customers d_id 参考 distinct_dealer d_id 有一个 FK,对 d_id 参考 distinct_dealer 的客户销售有一个 FK d_id.
当我 运行 下面这个查询时,它 returns 每条记录重复 54 次(那条记录的总记录数 d_id。
select d.d_id, d.dealer_name, cs.total_sales from dship d
join cs_sales cs on d.d_id = cs.d_id order by d.d_id
看起来它为每个 d_id 返回了一条记录,有人能看出我做错了什么吗?
我想你想要聚合:
select d.d_id, d.dealer_name,
sum(cs.total_sales)
from dship d join
cs_sales cs
on d.d_id = cs.d_id
group by d.d_id;