我有两个表,如下所示:
mysql> select*from receipt;
+----+------------+-------+---------------------+
| id | receipt_id | money | created_at |
+----+------------+-------+---------------------+
| 1 | receipt_3 | 100 | 2018-10-30 00:00:00 |
| 2 | receipt_4 | 200 | 2018-10-29 00:00:00 |
| 3 | receipt_5 | 300 | 2018-10-31 00:00:00 |
+----+------------+-------+---------------------+
3 rows in set (0.00 sec)
mysql> select*from material;
+----+------------+---------------------+
| id | receipt_id | created_at |
+----+------------+---------------------+
| 1 | receipt_3 | 2018-10-30 00:00:00 |
| 2 | receipt_3 | 2018-10-30 00:00:00 |
| 3 | receipt_5 | 2018-10-31 00:00:00 |
+----+------------+---------------------+
3 rows in set (0.00 sec)
我得到的结果是这样使用的:“select distinct sum(money),material
.created_at
from receipt
inner join material
on receipt
.receipt_id
=material
.receipt_id
按material
分组>.created_at
;"
+------------+---------------------+
| sum(money) | created_at |
+------------+---------------------+
| 200 | 2018-10-30 00:00:00 |
| 300 | 2018-10-31 00:00:00 |
+------------+---------------------+
2 rows in set (0.00 sec)
但是我想通过忽略相同的记录来得到这个:
+------------+---------------------+
| sum(money) | created_at |
+------------+---------------------+
| 100 | 2018-10-30 00:00:00 |
| 300 | 2018-10-31 00:00:00 |
+------------+---------------------+
2 rows in set (0.00 sec)
想了很久还是没有答案,求助,万分感谢
最佳答案
只需使用 sum(distinct money)
:
select sum(distinct money) as sum_money,
m.created_at
from receipt r join material m
on r.receipt_id=m.receipt_id
group by m.created_at;
+------------+---------------------+
| sum_money | created_at |
+------------+---------------------+
| 100 | 2018-10-30 00:00:00 |
| 300 | 2018-10-31 00:00:00 |
+------------+---------------------+
关于mysql - 合并两个表的唯一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53067977/