为了账号安全,请及时绑定邮箱和手机立即绑定

SQL里inner join和连接谓词有什么区别?

SQL里inner join和连接谓词有什么区别?

慕哥9229398 2019-03-03 04:04:34
比如说SELECT * FROM TABLE1 JOIN TABLE2 ON TABLE1.CON1=TABLE2.CON2和SELECT * FROM TABLE1,TABLE2 WHERE TABLE1.CON1=TABLE2.CON2有神马区别啊...看了半个月SQL,这考四级了,不清楚是咋回事...好吧,我知道如果select*是有区别的,但是比如选择的是table1.col1,两者的作用也是一样的么?
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

第一条SQLWHERE子句中使用的连接语句,在数据库语言中,被称为隐性连接。
第二条INNER JOIN……ON子句产生的连接称为显性连接。(其他JOIN参数也是显性连接,如Left join, Right Join, Full Join等)

WHERE 和INNER JOIN产生的连接关系,没有本质区别,结果也一样。

但是!隐性连接随着数据库语言的规范和发展,已经逐渐被淘汰,比较新的数据库语言基本上已经抛弃了隐性连接,全部采用显性连接了。

查看完整回答
反对 回复 2019-03-13
?
HUX布斯

TA贡献1876条经验 获得超6个赞

那两条select * 语句 查询出来的结果包含了table和table2的所有字段,一般实际编程中不会这样做的。当你要查询两个表中某几个指定的字段就用 select table1.con1,table2.con2 这样的方式。当两个表没有相同名称的字段的情况下可以直接写 select con1,con2,如果有相同的字段就必须加上表名称了,建议是都加上表名称。

查看完整回答
反对 回复 2019-03-13
  • 2 回答
  • 0 关注
  • 733 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信