sql多表联查实例

   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

时间: 2024-11-01 23:35:14

sql多表联查实例的相关文章

SQL交叉表实例

版权声明:CSDN是本Blog托管服务提供商.如本文牵涉版权问题,CSDN不承担相关责任,请版权拥有者直接与文章作者联系解决. SQL交叉表实例 很简单的一个东西,见网上好多朋友问"怎么实现交叉表?",以下是我写的一个例子,数据库基于SQL SERVER 2000. -- ====================================================== --交叉表实例 -- ==========================================

把多表联查的sql语句转换成linq语句

问题描述 把多表联查的sql语句转换成linq语句 SELECT * FROM [group_product] where proid in(select proid from [group_browsehistory] where memid in(select memid from [group_browsehistory] where proid=12)) 在线等,这个sql语句怎么转换成linq??? 解决方案 from x in group_product where group_br

SQL语句查询服务器不同库的两张表联查

同台服务器不同库的两张表联查 这种方法只限于在同台服务器的数据库. 一.建立两个数据库,库A(表a) 和 库B(表b) . 二.给两个库分配同样的帐号权限. 三.在查询的时候使用下面语句:  代码如下 复制代码 select * from A.dbo.a, B.dbo.b where A.dbo.a.id=B.dbo.b.id   这个sql语句达到的效果就是 库A 和 库B  中,表a 和 表b 中id相等的数据. 以上方法就是一个简单的同服务器不同库的连表查询. 不同服务器不同数据库两张表连

sql多表联合查询二个查询实例

sql多表联合查询二个查询实例 先看常用的查询 两表结构不一样 select m.* , n.* from t1 m, t2 n where m.id = n.id and n.date = (select max(date) from t2 where id = n.id) select m.* , n.* from t1 m, t2 n where m.id = n.id and not exists (select 1 from t2 where id = n.id and date >

sql update 语法与实例

  sql update 语法与实例 在日常使用的数据库教程是一个不断变化的数据存储.在SQL是用于修改数据已经在数据库中的更新和删除commands.The更新语句可以更新表格中的一个或多个记录命令. UPDATE table_name SET column_name = expression WHERE conditions 实例一 UPDATE AntiqueOwners SET Address = '77, Lincoln st.' WHERE OwnerFirstName= 'Jane

sql 全文索引入门与实例

全文索引为在字符串数据中进行复杂的词搜索提供有效支持.全文索引存储关于重要词和这些词在特定列中的位置的信息.全文查询利用这些信息,可快速搜索包含具体某个词或一组词的行.     全文索引包含在全文目录中.每个数据库教程可以包含一个或多个全文目录.一个目录不能属于多个数据库,而每个目录可以包含一个或多个表的全文索引.一个表只能有一个全文索引,因此每个有全文索引的表只属于一个全文目录.     全文目录和索引不存储在它们所属的数据库中.目录和索引由 Microsoft 搜索服务分开管理.     全

sql判断表名是否存在后进行删除

在sql使用过程中,我们在删除数据库表时,需要对表是否存在进行下判断,再进行删除操作.下边就看看如何使用sql判断表是否存在: sql代码如下:  代码如下 复制代码 if exists ( select * from INFORMATION_SCHEMA.tables where table_name = 'tab') drop table tab 可见,sql判断表是否存在非常简单,这样进行判断后再删除可以避免表不存在的错误. 我们再做得更高级一些 在sqlserver中,创建表之前判断表是

sql 查询指定日期时间记录sql语句与查询实例

sql 查询指定日期时间记录sql语句与查询实例  首先创建一个表abc结构如下    CREATE TABLE `cc`.`loup` (  `id` INT( 4 ) NOT NULL AUTO_INCREMENT ,  `datetimes` INT( 4 ) NULL ,  `ipaddress` VARCHAR( 20 ) NULL ,  PRIMARY KEY ( `id` )  ) ENGINE = MYISAM    再批量插入数据    INSERT INTO `loup` (

sql 多表联合查询

关于sql 多表联合查询方法很多,我们今天就来讲一下关于sql多表查询的用法与实例代码,一般会用到select  * from (select ) union 来操作. select 类型,sum(合计金额) from (select 商品名称,数量,日期,类型,合计金额 from 出库表 where 日期 > '2010-5-5 00:00:00' union select 商品名称,数量,日期,类型,合计金额 from 入库表 where 日期 > '2010-5-5 00:00:00'