以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Select 语句的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61562) |
-- 作者:HappyFt -- 发布时间:2014/12/14 22:56:00 -- Select 语句的问题 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编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/12/14 23:11:00 -- 差不多。当然下面这个会更好一些。 |