【发布时间】:2019-01-25 10:34:55
【问题描述】:
我创建了以下DataModel:
表客户
INSERT INTO test.customer
(CustomerName, CustomerCountry, RegistrationDate)
VALUES
("Customer A","DE","2015-05-03"),
("Customer B","US","2015-07-25"),
("Customer C","US","2016-02-15"),
("Customer D","DE","2017-09-21"),
("Customer E","AU","2018-12-07");
表格订单
INSERT INTO test.orders
(idCustomer, PaymentMethod, OrderDate)
VALUES
("1","CreditCard","2015-05-04"),
("1","PayPal","2015-11-18"),
("3","PayPal","2017-09-04"),
("2","Invoice","2018-04-30");
到目前为止,这一切都很好。
现在我想根据WHERE 条件用表Customer 和Orders 中的值填充表SpecialCustomers。因此,我尝试了以下代码:
INSERT INTO test.specialcustomers
(idCustomer, CustomerName)
SELECT idCustomer, CustomerName
FROM test.customer
LEFT JOIN test.orders ON test.customer.idCustomer = test.orders.idCustomer
WHERE PaymentMethod ="PayPal";
导致错误的原因:
Error Code: 1052. Column 'idCustomer' in field list is ambiguous
据我所知,问题是Customer A 有一个带有Paypal 和CreditCard 的订单,所以分配给PaymentMethod 的PaymentMethod 不是唯一的。
但是,我的目标是在至少满足一次条件时将每个客户插入表SpecialCustomers。
因此,在上述情况下,如果至少有一个订单使用PayPal 支付,则应将客户插入到表中SpeicalCustomers。
我需要对我的代码进行哪些更改才能使其正常工作?
【问题讨论】:
标签: mysql sql mysql-workbench