加入一个表或从多个表中选择哪个更好?
例如,让我们假设以下类似的场景:
使用连接:
SELECT COALESCE(SUM(SALARY),0) FROM X
JOIN Y ON X.X_ID=Y.Y_X_ID
或者
通过从多个表中选择
SELECT COALESCE(SUM(SALARY),0) FROM X, Y
WHERE X.X_ID=Y.Y_X_ID
主要是连接用于从多个表中检索数据,所以在 sql 中有 3 种类型的连接可用
两者都是连接。第一个是显式连接,第二个是隐式连接,是一种 SQL 反模式。
第二个不好,因为很容易意外交叉连接。这也很糟糕,因为当您想要交叉连接时,不清楚您是否想要交叉连接,或者您是否有意外连接。
在第二种样式中,如果您需要转换为外连接,则需要更改查询中的所有连接,否则可能会得到不正确的结果。所以第二种风格更难维持。
显式连接是在上个世纪建立的,为什么有人仍然使用容易出错且难以维护的隐式连接是我无法理解的。
您应该使用JOIN语法有很多原因,可以在此处找到。
此外,这种语法的优点是为查询优化器提供了一些提示(在计算权重期间,直接由本语法中提到的事实计算的权重比其他语法更有利)。