在线询问一条sql语句的写法
我这有两张表
order——>订单总表 保存着所有的订单信息。
iczhifu——>IC储值卡支付的订单信息。
数据库是sqlserver
两张表由字段order_id来关联,order_id在order表中是主键,在iczhifu不是主键。
订单有现金与IC储值卡两种支付方式,现金消费的订单不保存到iczhifu表中。
因为店里大家都能进数据库操作,现在出现了order里出现以IC卡消费的订单却在iczhifu表中没有数据,也查不到是谁操作了,所以想把这些问题数据都找出来。
请问大神们这个sql要怎么写。
------解决方案--------------------
SELECT * FROM order A WHERE NOT EXISTS (SELECT 1 FROM iczhifu B WHERE A.ORDER_ID = B.ORDER_ID)
------解决方案--------------------左关联查null
select a.* from order a left join iczhifu b on b.order_id=a.order_id where b.order_id is null and a.order_type='IC卡支付';
------解决方案--------------------Select *
From 订单总表
Where 消费类型 = "IC卡"
And 订单ID Not In (
Select 订单ID
From IC储值卡支付的订单信息
)
------解决方案--------------------非IC消费的数据,你怎么过滤掉?表结构是怎样的?
还有,按照你这个结构的话,一个order是可以分几次ic消费或者其他消费的,比如一个50块的order可以分5次都刷10块,所以1楼那个未必对