gpt4 book ai didi

sql - sql中逗号和join的区别

转载 作者:行者123 更新时间:2023-12-04 07:54:25 25 4
gpt4 key购买 nike

在两个不同的表之间使用逗号或连接有什么区别。

比如这两个代码:

SELECT studentId, tutorId FROM student, tutor;


SELECT studentId, tutorId FROM student JOIN tutor;

最佳答案

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

假设你有 4 张 table
如果您使用老式的方式进行 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;

后者在 table 前面向您展示了它的 JOINing 到底是什么。它提高了可读性,并且更不容易出错,因为忘记放置 ON 子句比在 WHERE 中添加另一个 AND 或完全添加错误条件更难(就像我在上面的查询中所做的那样:)。

此外,如果您正在执行其他类型的 JOINS,使用显式编写它们的方式,您只需要将 INNER 更改为其他内容,并且代码是一致构建的。

关于sql - sql中逗号和join的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com