发个蛋贴讨论下一个写法

ztxneter 2011-03-31 04:22:55
首先:

select 字段列表 from tba a join tbb b on a.id=b.id where a.id=1

select 字段列表 from (select id from a where id=1)tmp join b on tmp.id=b.id


...全文
198 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
exinke 2011-04-06
  • 打赏
  • 举报
回复
可以看一下SQL的执行计划,两者效率应该是相同的
人鱼传说 2011-04-05
  • 打赏
  • 举报
回复
这种写法很有蛋
qgqch2008 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 ztxneter 的回复:]
首先:

select 字段列表 from tba a join tbb b on a.id=b.id where a.id=1

select 字段列表 from (select id from a where id=1)tmp join b on tmp.id=b.id
[/Quote]
jiao3630 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 whynot1987 的回复:]
引用 7 楼 luoyoumou 的回复:
-- 蛋疼的时候,可以用下面的方法写!
-- 蛋不疼的时候,你爱怎么写就可以怎么写!


确实很蛋疼!
[/Quote]
揉揉 继续写
O爱咋咋地O 2011-03-31
  • 打赏
  • 举报
回复
没有区别,查询计划里可以看出来
叶子 2011-03-31
  • 打赏
  • 举报
回复
还是第一种方便...
-狙击手- 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 haiwer 的回复:]
引用 1 楼 dawugui 的回复:
select 字段列表 from tba a join tbb b on a.id=b.id where a.id=1

后面那个纯属无聊.

蛋在哪里
[/Quote]

有聊
ztxneter 2011-03-31
  • 打赏
  • 举报
回复
我晕,怎么都蛋疼,,讨论要紧。
昵称被占用了 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
select 字段列表 from tba a join tbb b on a.id=b.id where a.id=1

后面那个纯属无聊.
[/Quote]
蛋在哪里
blue999ice 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acherat 的回复:]
select 字段列表 from (select id from a where id=1)tmp join b on tmp.id=b.id

看到第一个写法你就要舍去这个,估计楼主蛋疼了。
[/Quote]
小三很给力
快溜 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 ztxneter 的回复:]
首先:

select 字段列表 from tba a join tbb b on a.id=b.id where a.id=1

select 字段列表 from (select id from a where id=1)tmp join b on tmp.id=b.id
[/Quote]
没事,我原谅你的调皮
rucypli 2011-03-31
  • 打赏
  • 举报
回复
eggache
whynot1987 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 luoyoumou 的回复:]
-- 蛋疼的时候,可以用下面的方法写!
-- 蛋不疼的时候,你爱怎么写就可以怎么写!
[/Quote]

确实很蛋疼!
王向飞 2011-03-31
  • 打赏
  • 举报
回复
--这个要看蛋疼得剧烈程度
luoyoumou 2011-03-31
  • 打赏
  • 举报
回复
-- 蛋疼的时候,可以用下面的方法写!
-- 蛋不疼的时候,你爱怎么写就可以怎么写!
ztxneter 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acherat 的回复:]

select 字段列表 from (select id from a where id=1)tmp join b on tmp.id=b.id

看到第一个写法你就要舍去这个,估计楼主蛋疼了。
[/Quote]

这两条语句,查询的结果应该是一样的。
Rotel-刘志东 2011-03-31
  • 打赏
  • 举报
回复
--这个效率还可以的
select 字段列表 from tba a join tbb b on a.id=b.id where a.id=1

--嵌套的效率不会高的

select 字段列表 from (select id from a where id=1)tmp join b on tmp.id=b.id
ztxneter 2011-03-31
  • 打赏
  • 举报
回复
根据逻辑查询原理

按照第一种方法,首先a与b会生成一张c表,然后排除条件,如果a有10000w,b有10000w条数据

如果按照第二种写法:

a可以理解为1条,b为10000条

所以我认为效果会不一样,因为家里一些事情,不能上网,过些天发个测试过来。
AcHerat 2011-03-31
  • 打赏
  • 举报
回复
select 字段列表 from (select id from a where id=1)tmp join b on tmp.id=b.id

看到第一个写法你就要舍去这个,估计楼主蛋疼了。
--小F-- 2011-03-31
  • 打赏
  • 举报
回复
随便你怎么写 爱怎么写就怎么写

不过有嵌套的效率确实要低一些
加载更多回复(1)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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