我只是在谷歌上搜索了一下,但找不到任何完美的答案来回答我的问题。我正在尝试连接三个表:订单、付款、里程碑、发票。表之间的关系如下:
订单到付款里程碑(一对多)一个订单可以有多个与之相关的付款里程碑,可能是25%、50%和25%,在不同的日期。
现在,在到达付款里程碑时间之后,将生成发票,并且在发票表中,将有订单标识和付款里程碑标识
所以,当我像这样加入他们时:
SELECT
inv.invoice_id, ord.sub_total, ord.vat_added, pm.pay_date, pm.percentage
FROM orders ord
INNER JOIN
payment_milestone pm ON ord.order_id = pm.order_id
INNER JOIN
invoices inv ON ord.order_id = inv.order_id
它还给了我:这个结果是多余的
我曾经 GROUP BY
它产生了这个结果:result
我想要的结果是:
invoice_id sub_total vat_added pay_date percentage
----------------------------------------------------------------------------
11 40000.00 2000.00 2018-09-20 53
12 40000.00 2000.00 2018-09-22 47
13 45360.00 2268.00 2018-09-27 100
我不知道我在查询中哪里做错了。
提前谢谢!
1条答案
按热度按时间4smxwvx51#
如果付款里程碑和发票表之间存在连接,则连接应处于启用状态
payment_milestone_id
不是order_id
. 据我所知,从你有限的问题陈述来看payment_milestone_id
,一个invoice_id
已生成。请尝试以下操作: