SQL的这两种写法是否功能相同?(5分)

  • 主题发起人 主题发起人 sjm
  • 开始时间 开始时间
S

sjm

Unregistered / Unconfirmed
GUEST, unregistred user!
Select a.姓名,a.学历,b.基本工资 from 员工信息 a 工资表 b where a.编号 = b.编号

Select a.姓名,a.学历,b.基本工资 from 员工信息 a Inno Join 工资表 b on a.编号 = b.编号

前一句是用Where来连接两表而后一句则是用的内连接,请问两句功能相同可以互换使用吗?
 
关键想知道两种写法是否完全等效,请高手明示,谢谢!
 
如果两个表的编号的关系是对应的,那么两句SQL是相同的,
如果A表中有部分编号在B表中不存在,
那么第一条SQL查询出来只有两个表都编号相同的记录,
第二条SQL可以把A表中的记录都查询出来,但B表没有编码的记录,那么基本工资就是空了。
 
是这样吗?请注意第二句我用的是Inno Join而不是left Join啊!
 
suger說得沒錯
 
suger說得有錯 !!!!!!!!!
两句话完全等效,都是内连接。
 
我个人也是倾向于两个语句功能是相同的。
 
你自己测试一下就知道了,完全一样的.
 
帮助都说不加联接关键字就是内联接了。
 
第一句可以用在access和sqlserver语句中,第二句只能用在sqlserver中,
两条语句查询结果是一样的,都是两个表都存在关联字段的行的组合,
第二句在数据量大时,效率会高于第一句。
 
同意李翔鹏的意见
 
同意JohnSun2002的说法..特别是提高性能的时候,第二句话就明显优化于第一句
 
用查询分析器试试就知道了
 
sqlserver中,这两句是等效的,实际上,如果你在sqlserver的企业管理上用了第一句,它会自动帮你转成第二句的
不过Inno应该是Inner吧
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部