数据库两表连接问题

友君快乐 2012-08-09 02:29:41
select stuID,stuName,className
from students inner join class on students.classID=class.classID

select stuID,stuName,className
from students,class
where students.classID=class.classID
的区别?
这两种数据库表连接的结果是一样的,但我想知道他们的区别,在海量数据表连接哪个更快。
用哪个比较好,好在哪
...全文
92 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingdom_0 2012-08-09
  • 打赏
  • 举报
回复
执行计划一致,效率就没区别.
qmz2007 2012-08-09
  • 打赏
  • 举报
回复
其实第二种写着方便 ,如果5张表连接的话 From这5张表 然后where 如果用join的话比较乱
烈火蜓蜻 2012-08-09
  • 打赏
  • 举报
回复
两个写法不一样,实际上实现是一样的。
牛哥_ 2012-08-09
  • 打赏
  • 举报
回复
性能上没区别 都属于 inner join 执行计划是一样的

个人喜欢inner join
qmz2007 2012-08-09
  • 打赏
  • 举报
回复
第一种是 left join on a.id=b.id
第二种2000时候可以 a.id*=b.id 2005以后不知道怎么写
友君快乐 2012-08-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
我觉得是一样的,原理一样,不知道第二种的左右连接怎么写,sql2000中时*=以后版本不支持
[/Quote]

第二种也是我最新接触的,左右连接好像只能用left join,right join吧
友君快乐 2012-08-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
看执行计划。。。
[/Quote]
能举例说明下吗

在sql server 里面是视图表连接自动生成是第一种;
在PB语言中,datawindow表连接自动生成是第二种
qmz2007 2012-08-09
  • 打赏
  • 举报
回复
我觉得是一样的,原理一样,不知道第二种的左右连接怎么写,sql2000中时*=以后版本不支持
全栈极简 2012-08-09
  • 打赏
  • 举报
回复
第二种更好。
wmg494005678 2012-08-09
  • 打赏
  • 举报
回复
看执行计划。。。
shizhu820228 2012-08-09
  • 打赏
  • 举报
回复
应该没区别吧,都是内联。。。我是我认为的。
期待明白的解释
小小农民 2012-08-09
  • 打赏
  • 举报
回复
这个还真没想过,我绝的应该是第一个吧,

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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