加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

逗号和连接在sql之间的区别

发布时间:2020-12-12 06:37:45 所属栏目:MsSql教程 来源:网络整理
导读:使用逗号或两个不同表之间的连接有什么区别. 比如这两个代码: SELECT studentId,tutorId FROM student,tutor;SELECT studentId,tutorId FROM student JOIN tutor; 解决方法 在执行它们时没有真正的区别,但是在工作中存在可读性,一致性和错误缓解问题: 想象
使用逗号或两个不同表之间的连接有什么区别.

比如这两个代码:

SELECT studentId,tutorId FROM student,tutor;


SELECT studentId,tutorId FROM student JOIN tutor;

解决方法

在执行它们时没有真正的区别,但是在工作中存在可读性,一致性和错误缓解问题:

想象一下,你有4张桌子
如果你使用老式的INNER JOIN方式,最终会得到:

SELECT col1,col2
FROM tab1,tab2,tab3,tab4
WHERE tab1.id=tab2.tab1_id
AND tab4.id = tab2.tab3_id
AND tab4.id = tab3.tab4_id;

使用显式的INNER JOINS,它将是:

SELECT col1,col2
FROM tab1
INNER JOIN tab2 ON tab1.id = tab2.tab1_id
INNER JOIN tab3 ON tab3.id = tab2.tab3_id
INNER JOIN tab4 ON tab4.id = tab3.tab4_id;

后者显示你正好在桌子前面加入了什么.它提高了可读性,并且更不容易出错,因为忘记放置ON子句比在WHERE中添加另一个AND或者完全添加错误的条件更困难(就像我在上面的查询中所做的那样:).

另外,如果你正在使用其他类型的JOINS,使用显式编写方式,你只需要将INNER更改为其他类型,并且代码是一致构造的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读