Mysql查询以查找特定列值不存在的特定行

Mysql查询以查找特定列值不存在的特定行,mysql,rows,records,Mysql,Rows,Records,我的处境很复杂。我知道使用sql可以实现我的目标。以下是我想要实现的目标: 我只有一个名为“data”的表 我有4列,分别是orderDate、orderID、orderDescription和orderType 我的表中有4种类型的“orderType”值,它们是订单、退款、退货和调整。如果出现这种情况,每个“OrderType”的orderid将保持不变 现在,我试图实现的是按如下方式过滤我的数据 仅选择表中不存在“orderType”列返回值和调整值的orderID记录 我真的很期待你的帮

我的处境很复杂。我知道使用sql可以实现我的目标。以下是我想要实现的目标:

我只有一个名为“data”的表

我有4列,分别是orderDate、orderID、orderDescription和orderType

我的表中有4种类型的“orderType”值,它们是订单、退款、退货和调整。如果出现这种情况,每个“OrderType”的orderid将保持不变

现在,我试图实现的是按如下方式过滤我的数据

仅选择表中不存在“orderType”列返回值和调整值的orderID记录

我真的很期待你的帮助

select orderid
from data
group by orderid
having sum(ordertype in ('Returned', 'Adjustment')) = 0
   and sum(ordertype = 'Refund') > 0 
   and sum(ordertype = 'Order') > 0 
或者只是

select orderid
from data
group by orderid
having sum(ordertype not in ('Refund', 'Order')) = 0
and count(distinct ordertype) = 2

谢谢你的快速回复。我尝试了它,它按照我的要求工作,但我注意到,我的表中存在一条orderType“return”和orderType“Order”的记录,它只是显示了一条特定orderType的记录。我想如果两种订单类型的orderID都相同,那么“退款”和“订单”都应该显示。您能告诉我如何获取这两个记录吗?我不太确定您想要什么。但是你不能使用sumordertype中的“退款”、“订单”=0吗?如果我不能澄清我的问题,我很抱歉。我只是想检索orderType返回的所有OrderID&调整不存在。我想检索所有其他orderType订单和退款记录,以显示特定orderid。然而,它只是检索一条记录,要么是orderType“return”要么是“Order”,而不是bothOk。我更新了答案。您希望记录包含Order和Return,但不包含其他两个值。