sql多表联查实例

sql多表联查实例,第1张

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

1、Access 数据库多表联合查询,每次连接之前须将连接符前面的内容放在括号里面,示例如:select 表a.字段1,表b.字段1,表c.字段1,表d.字段1 from ((表a inner join 表b on 表a.字段=表b.字段) inner join 表c on 表c.字段=表a.字段)inner join 表d on 表a.字段=表d.字段

2、如果每个联合字段不止一个可将on后面条件加(),如:select 表a.字段1,表b.字段1,表c.字段1,表d.字段1 from (表a inner join 表b on (表a.字段1=表b.字段1 and 表a.字段2=表b.字段2)) inner join 表c on 表c.字段=表a.字段

3、如果要一次联合一个表多次,但条件不同,可以每次连接此表时给此表换个别名,用别名 *** 作即可,如:select aa.字段1,表b.字段1,表c.字段1,bb.字段2 from ((表a as aa inner join 表b on aa.字段1=表b.字段) inner join 表c on 表c.字段=表a.字段)inner join 表a as bb on 表a.字段=bb.字段2.

1、Access 数据库多表联合查询,每次连接之前须将连接符前面的内容放在括号里面,示例如:select 表a.字段1,表b.字段1,表c.字段1,表d.字段1 from ((表a inner join 表b on 表a.字段=表b.字段) inner join 表c on 表c.字段=表a.字段)inner join 表d on 表a.字段=表d.字段

2、如果每个联合字段不止一个可将on后面条件加(),如:select 表a.字段1,表b.字段1,表c.字段1,表d.字段1 from (表a inner join 表b on (表a.字段1=表b.字段1 and 表a.字段2=表b.字段2)) inner join 表c on 表c.字段=表a.字段

3、如果要一次联合一个表多次,但条件不同,可以每次连接此表时给此表换个别名,用别名 *** 作即可,如:select aa.字段1,表b.字段1,表c.字段1,bb.字段2 from ((表a as aa inner join 表b on aa.字段1=表b.字段) inner join 表c on 表c.字段=表a.字段)inner join 表a as bb on 表a.字段=bb.字段2.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9909512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存