Select * from 订单 where (订单编号 In (Select distinct 订单编号 from 订单 where 订单类别= '库存订单' And 订单编号>= '1' And 客户 like 'A%') Or 订单编号 In (Select distinct 订单编号 from 订单明细 where 产品编码= 'A-001' And 类别= 'B'))
上述语句用了or是否效率会低呢,如果后面的两个查询中查询出来的唯一订单编号有重复的情况,能否将后面两个select语句先查询得到的订单编号先组合在一起这样效率更高?
下面这种写法正确吗?是否更高效?
Select * from 订单 where 订单编号 In (Select distinct 订单编号 from 订单 where 订单类别= '库存订单' And 订单编号>= '1' And 客户 like 'A%' Union Select distinct 订单编号 from 订单明细 where 产品编码= 'A-001' And 类别= 'B')
谢谢!
[此贴子已经被作者于2014-12-14 22:59:12编辑过]