【问题标题】:MySQL Inner join and sum two columnsMySQL内连接和两列求和
【发布时间】:2018-06-04 08:37:52
【问题描述】:

我有以下表格

表格:约会

ID | PRICE | PAID
48 |  100  | 180

表格:约会产品

ID | APPOINTMENT_ID | PRODUCT_ID | TOTAL
10 |       48       |      1     | 30
11 |       48       |      9     | 30
12 |       48       |      6     | 30

我想以某种方式运行一个 MySQL 查询:

a) 加入这两个表,对每个约会 ID 的约会产品的“总计”求和,如果“付费”不等于价格(来自约会表)+总计(来自约会产品表),则显示它。

这是我到目前为止所做的:

select a.*, b.appointment_id as AppId, b.total as ProdTotal 
from appointments a 
INNER JOIN appointments_products b ON a.id = b.appointment_id

但是这个查询并没有对每个约会id的总数求和

【问题讨论】:

标签: mysql sum inner-join


【解决方案1】:
select a.ID,a.PRICE,a.PAID,a.id as AppId,
       sum(b.total) as ProdTotal 
from appointments a 
INNER JOIN appointments_products b ON a.id = b.appointment_id
group by a.ID,a.PRICE,a.PAID;

【讨论】:

    【解决方案2】:

    使用 where 来检查价格是否等于已支付,并使用 group by 来与约会 ID 分组。

    【讨论】:

      【解决方案3】:

      选择 b.Appointment_Id, a.price, a.PAID, a.id, sum(b.total) AS TotalProd FROMointments_products AS b 内部加入约会作为 On Appointment_Id = a.Id group by Appointment_Id, a.Price , a.PAID , a.id HAVING a.PAID != (a.Price + sum(b.Total))

      【讨论】:

        猜你喜欢
        • 2021-10-09
        • 2015-11-25
        • 2017-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-12
        • 2016-01-09
        • 2015-08-24
        相关资源
        最近更新 更多