两种SQL查询哪个效率高点????

laolang08 2007-06-19 03:26:27
1.组合表查询
select a.* from test1 a test2 b where a.colume = b.colume and ...

2.复合查询
select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)

假定两条语句都能正确执行!!!!
...全文
398 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2007-06-25
  • 打赏
  • 举报
回复
2的效率高,同意楼上的。
理由:
如果select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)能正确执行,说明(select b.colume from test2 b where ...)子查询返回的结果是唯一的!
yuyu622 2007-06-25
  • 打赏
  • 举报
回复
2的效率高,同意.....
Johnson_Hong 2007-06-19
  • 打赏
  • 举报
回复
1的效率要高
jiangkeredgirl 2007-06-19
  • 打赏
  • 举报
回复
假定两条语句都能正确执行,那么,第二条的效率高!

理由:
如果select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)能正确执行,说明(select b.colume from test2 b where ...)子查询返回的结果是唯一的!
-------------------
支持
liujun999999 2007-06-19
  • 打赏
  • 举报
回复
楼主的第2条其实应该是
select a.* from test1 a where a.colume in (select b.colume from test2 b where ...)
这样的话第一条肯定效率高
zqrqq 2007-06-19
  • 打赏
  • 举报
回复
假定两条语句都能正确执行,那么,第二条的效率高!

理由:
如果select a.* from test1 a where a.colume = (select b.colume from test2 b where ...)能正确执行,说明(select b.colume from test2 b where ...)子查询返回的结果是唯一的!
tdy1234 2007-06-19
  • 打赏
  • 举报
回复
你可以算一下假定A表N列B表M列 都没有任何索引 那么得到一个时间复杂度的公式 是
N*(M+1)/2。第二个是N*M 这样一看就知道效率的优劣了
tdy1234 2007-06-19
  • 打赏
  • 举报
回复
是1, 2的效率及其低下的。 从复杂度而言 1的复杂度如果是X 2的复杂度是X的一个笛卡儿乘积
约翰羊 2007-06-19
  • 打赏
  • 举报
回复
要不弄点大数据量,试试?
我也是瞎说的不要理我~~
nick6610 2007-06-19
  • 打赏
  • 举报
回复
应该是1吧~~
我瞎说的不要理我~~

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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