正如标题所说,我试图找到客户谁已经下了订单,但尚未付款。
我有三张桌子;

Customers, Payments, Orders

到目前为止,sql给了我(嵌套查询)所有没有付款的客户,外部查询然后尝试将所有有订单的客户连接起来,并检查这些客户是否不在我的内部表中?
SELECT customerWOpayments.customerNumber FROM
ClassicModels.Customers c
INNER JOIN ClassicModels.Orders o ON c.customerName = o.customerNumber
NOT IN
(SELECT  distinct c.customerNumber
FROM ClassicModels.Customers c
LEFT OUTER JOIN ClassicModels.Payments p ON c.customerNumber = p.customerNumber
WHERE p.customerNumber IS NULL) customerWOpayments;

我在第8行发现了一个mysql语法错误,但无法找出原因?

最佳答案

如果您在原始示例中加入的所有密钥都正确(例如c.customerName=o.customerNumber似乎可疑),那么这将返回有订单但没有匹配付款的客户。

SELECT c.customerNumber
FROM ClassicModels.Customers c
  INNER JOIN ClassicModels.Orders o
    ON c.customerNumber = o.customerNumber
  LEFT OUTER JOIN ClassicModels.Payments p
    ON c.customerNumber = p.customerNumber
WHERE p.customerNumber IS NULL;

关于mysql - MySQL查询:查找有/有订单但无付款的客户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9246410/

10-09 05:03