回答
你还没有付出太多的努力。
select id
from orders o
left join payments p
on p.order_id = o.id
where p.order_id is null
假设我有关系吧,这会给你所有的订单已经没有对他们支付的款项。
非常感谢! –
听起来像你可以使用反连接模式,例如,
SELECT o.orderID
FROM orders o
LEFT
JOIN payments p
ON p.orderID = o.orderID
WHERE p.orderID IS NULL
,说从orders
获得所有的行,匹配payments
一起。如果有orders
其中没有匹配的payments
,则orders
的行将与NULL
值一起返回,替代payments
中的“缺失”行。 (关键字之前的关键字LEFT
JOIN
告诉MySQL做一个“外部连接”,即使表中没有匹配的行,也会返回左侧表中的所有行(否则将满足谓词)在右侧)。
的“绝招”是WHERE子句,我们丢弃orders
在payments
有一个匹配行的任何行的谓语,留给我们orders
没有任何匹配payments
。
还有其他的查询模式可以达到相同的结果,例如, NOT IN (subquery)
,NOT EXIST (correlated subquery)
例如:
SELECT o.orderID
FROM orders o
WHERE o.orderID NOT IN
(SELECT p.orderID
FROM payments p
WHERE p.orderID IS NOT NULL
)
- 或 -
SELECT o.orderID
FROM orders o
WHERE NOT EXISTS
(SELECT 1
FROM payments p
WHERE p.orderID = o.orderID
)
我会尽快做到这一点,并张贴我的评论,非常感谢! –
再次感谢您的真正快速反应,并真正教会我一些东西!这是我...'选择Order_t.OrderID FROM Orders_t LEFT JOIN ON Payment_t.OrderID = Order.OrderID WHERE IS Payment_t.OrderID Payments_t NULL' –
- 1. SQL:获取所有客户的最新付款?
- 2. Stripe-向客户发送付款
- 3. PayPal付款客户端REST脚本
- 4. Paypal API - 客户接受来自其客户的PayPal付款
- 5. 访客的条纹付款
- 6. 通过SQL查询获取所有WooCommerce客户付款订单
- 7. 在Openerp的收款机中添加客户付款树
- 8. 如何向我的客户支付Django PayPal付款方式
- 9. Doexpresscheckoutpayment付款未被用户授权
- 10. 未在PayPal中列出的客户预付款的付款页面用于周期性开票
- 11. 在客户端上创建付款并在服务器上执行付款
- 12. 获取发票付款总额和每个客户欠款
- 13. 电子商务客户信用存款和付款
- 14. 预付款的嵌入式支付流程中的客户支付支持
- 15. 付款和付款
- 16. 从客户的卡支付款项并交给商户
- 17. Magento:制作一种“未付款”付款方式,然后通过多笔付款逐渐获得付款
- 18. 订单未付款收到
- 19. Paypal网上未来付款
- 20. 通过PayPal帐户创建定期付款的付款流程
- 21. 贝宝预付款付款
- 22. 使用PayPal付款付款
- 23. 批量付款付款
- 24. 平衡付款PHP客户端:查询结果触发未捕获的异常
- 25. 向客户添加银行帐户(平衡付款API)
- 26. 如何使用Braintree在客户端显示客户的付款方式?
- 27. 付款金额跟踪sql
- 28. PayPal付款专业版和未来付款
- 29. 用Paypal付款给用户
- 30. Mysql查询:查找客户W /订单,但没有付款
你为什么不能做自己?一个特定的问题?您当前的查询出错? –
你有多远? 'SELECT o.orderID FROM orders o'? – spencer7593
我对SQL很陌生,所以我几乎失去了。如果你需要我,我会在这里放些东西,但它可能不对。 –