请高手帮忙改个SQL

hqs19821108 2010-01-13 08:54:56

select * from tableA where tableA.ap_no in

select ap_no from tableB where tableB.ps_no
in
(select ps_no from tableC where os_no=某个值)


请高手帮我看看这个语句可以怎么写效率高点
...全文
85 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lang071234 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 daishaodong 的回复:]
用inner join会不会效率更高呢?
[/Quote]


你完全可以 自己看一下开销啊。

daishaodong 2010-01-13
  • 打赏
  • 举报
回复
用inner join会不会效率更高呢?
雷肿么了 2010-01-13
  • 打赏
  • 举报
回复
第二个。
lidanzi 2010-01-13
  • 打赏
  • 举报
回复
第二个高
hqs19821108 2010-01-13
  • 打赏
  • 举报
回复
select * from tableA , tableB ,tableC
where A.ap_no=B.ap_no AND B.ps_no=C.ps_no
AND os_no=某个值

select A.*
From TableA A
Join TableB B on B.ap_no = A.ap_no
Join TableC C on C.ps_no = B.ps_no
where C.os_no = value

两种类型哪个效率高点呢
SQL77 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 orchidcat 的回复:]
引用 4 楼 dawugui 的回复:
SQL codeselect a.*from tablea a , tableb b , tablec cwhere a.ap_no= b.ap_noand b.ps_no= c.ps_noand c.os_no=某个值select a.*from tablea ainnerjoin tableb bon a.ap_no= b.ap_noinnerjoin tableb con b.ps_no= ?-


求证一下,dawugui ,之前有一个培训的老师提过一句,说
from tablea,tableb,tablec 这样的可能以后会被取缔。

不知道是真是假?

[/Quote]
这样,其实会比较好,去看JJ大哥的帖子,
JOIN 是要ON的,
而A,B这样可以不用WHERE 相当于CROSS JOIN
Mr_Nice 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dawugui 的回复:]
SQL codeselect a.*from tablea a , tableb b , tablec cwhere a.ap_no= b.ap_noand b.ps_no= c.ps_noand c.os_no=某个值select a.*from tablea ainnerjoin tableb bon a.ap_no= b.ap_noinnerjoin tableb con b.ps_no= ?-
[/Quote]

求证一下,dawugui ,之前有一个培训的老师提过一句,说
from tablea,tableb,tablec 这样的可能以后会被取缔。

不知道是真是假?
SQL77 2010-01-13
  • 打赏
  • 举报
回复
select * from tableA , tableB ,tableC
where A.ap_no=B.ap_no AND B.ps_no=C.ps_no
AND os_no=某个值
dawugui 2010-01-13
  • 打赏
  • 举报
回复
select a.* 
from tablea a , tableb b , tablec c
where a.ap_no = b.ap_no and b.ps_no = c.ps_no and c.os_no=某个值

select a.* from tablea a
inner join tableb b on a.ap_no = b.ap_no
inner join tableb c on b.ps_no = c.ps_no
where c.os_no=某个值
Mr_Nice 2010-01-13
  • 打赏
  • 举报
回复

select A.*
From TableA A
Join TableB B on B.ap_no = A.ap_no
Join TableC C on C.ps_no = B.ps_no
where C.os_no = value
dawugui 2010-01-13
  • 打赏
  • 举报
回复
select a.*
from tablea a , tableb b , tablec c
where a.ap_no = b.ap_no and b.ps_no = c.ps_no and c.os_no=某个值
nalnait 2010-01-13
  • 打赏
  • 举报
回复
exists

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧