我尝试选择所有客户ID,但至少拥有一个类型" d"
的客户除外。我试过了:
select customers.id from Customers customers inner join Orders orders on orders.buyerId = customers.id where orders.type != 'd';
但是这会选择所有客户ID,只要客户至少有一个订单没有输入" d"。
除了至少有一个类型的订单" d"?
之外,我如何选择所有客户ID?答案 0 :(得分:0)
您应该使用not in in like
,而不是使用Inner Joinselect customers.id from Customers customers
where customers.id not in (select buyerId from Orders where orders.type = 'd';)
因此我们会过滤所有订单类型为" d"的客户。 如果您使用上述内容,则只会根据订单进行过滤,如果同一客户有另一个订单,客户ID仍会显示。
答案 1 :(得分:0)
试试这个:
SELECT customers.id FROM Customers customers
LEFT JOIN Orders orders ON orders.buyerId = customers.id AND orders.type = 'd'
WHERE orders.KEY IS NULL
将orders.KEY替换为Orders表的关键字段名称