【发布时间】:2016-06-13 13:40:46
【问题描述】:
我有一个客户表、订单表和付款表。
我试图从这些表中获得一个包含每条记录的表:客户#、订单#、到期余额。但是,如果客户没有订单,那么我只想列出客户#,其他字段的值为 NULL。
使用 LEFT JOIN,我可以只用 customer# 和 order# 来做到这一点,但我也不知道如何在那里获得应付的余额。我对 Mysql 还很陌生,并试图搜索答案但无法。
这仅适用于客户#和订单#:
SELECT
customers.cust_num,
orders.order_id
FROM customers
LEFT JOIN orders ON customers.cust_num = orders.cust_num
但我正在尝试将“orders.invoice_amount - SUM(payments.amount) AS balance_due”合并为另一列,其中支付表通过两个名为“order_id”的字段与订单表相关。
也许是这样的:
SELECT orders.invoice_amount - SUM(payments.amount) AS balance_due FROM payments, orders WHERE payments.order_id = orders.order_id
知道我该如何做这件事或指出正确的方向吗?
【问题讨论】:
-
如果您愿意,请考虑遵循以下简单的两步操作: 1. 如果您还没有这样做,请提供适当的 CREATE 和 INSERT 语句(和/或 sqlfiddle),以便我们可以更容易复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。
标签: mysql sql join left-join inner-join