可以使用子查询和NOT IN操作符来实现:

SELECT COUNT(DISTINCT customer.ID)
FROM customer
WHERE customer.ID NOT IN (SELECT customer.ID
                          FROM customer
                          JOIN orders ON customer.orderID = orders.orderID
                          WHERE orders.paymentMethod = "2")
AND customer.ID IN (SELECT customer.ID
                    FROM customer
                    JOIN orders ON customer.orderID = orders.orderID
                    WHERE orders.paymentMethod = "1");

首先,内部的子查询找出使用支付方式“2”的所有客户。然后,外部的查询找出使用支付方式“1”的客户,但排除掉使用支付方式“2”的客户。最后,通过COUNT和DISTINCT函数计算结果。

我有两张数据库表一张costumer包含用户ID和订单ID这两个字段是一对多的关系。一张order包含订单ID和支付方式。用SQL查询有多少用户只使用了支付方式1而没有使用支付方式2

原文地址: https://www.cveoy.top/t/topic/bFVi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录