您现在的位置: 万盛学电脑网 >> 程序编程 >> 数据库 >> mysql教程 >> 正文

sql多表联查实例

作者:佚名    责任编辑:admin    更新时间:2022-06-22

   sql多表联查实例

  下面提供四款sql多表关联查询的实例,个个效率不一样。

  select * from order_info as a ,ivrlog4ivrdlvinst as b

  where

  (a.saleorder=b.ext1_skill and b.start_date=@date1 and se_id='55' and b.ext1_skill!='')

  and convert(varchar(10),a.instime,112)=@date2 and max(a.instime)

  方法二

  select * from order_info as a

  where a.saleorder=(

  select b.ext1_skill from ivrlog4ivrdlvinst as b

  where b.start_date=@date1 and se_id='55'

  and b.ext1_skill!='')

  and convert(varchar(10),max(a.instime),112)=@date2

  方法三

  declare

  @date1 varchar(20),

  @date2 varchar(20)

  set @date1='20100812'

  set @date2='2010-08-12'

  select * from order_info as a

  where a.saleorder=

  (select b.ext1_skill from ivrlog4ivrdlvinst as b where b.start_date=@date1 and se_id='55' and b.ext1_skill!='')

  and convert(varchar(10),a.instime,112)=@date2

  and max(a.instime)

  方法四

  select b.caller, b.start_date, b.start_time, b.ext1_skill,

  c.deliveryno, c.destroyresult, c.deliverydate, c.deliverytime, c.arrangetime, c.driverphone, c.drivermobile,

  a.servicedate, a.servicetime, a.workertel

  from order_info as a ,ivrlog4ivrdlvinst as b ,delivery_info as c

  where

  a.saleorder in (select b.ext1_skill from ivrlog4ivrdlvinst where b.start_date=@date1 and b.se_id='55' and b.ext1_skill!='')

  and convert(varchar(10),a.instime,112)=@date2

  order by b.start_date desc, b.start_time desc