加入表或从多个表中选择之间哪个更好?
例如,让我们假设以下类似的情况:
使用 加入 :
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
答案 0 :(得分:2)
主要是join用于从多个表中检索数据 所以在sql中有3种类型的连接可用
答案 1 :(得分:1)
您应该使用 JOIN 语法,原因很多,可以找到here。
此外,这种语法的优点是可以为查询优化器提供一些提示(在计算权重期间,由此语法中提到的事实直接计算的权重比其他权重更有利)。
答案 2 :(得分:1)
两者都是连接。第一个是显式连接,第二个是隐式连接,是一个SQL反模式。
第二个是坏的,因为很容易发生偶然的交叉连接。这也是不好的,因为当你想要一个交叉连接时,不清楚你是否想要它或者你是否有意外的连接。
此外,在第二种样式中,如果您需要转换为外部联接,则需要更改查询中的所有联接或冒险获得不正确的结果。所以第二种风格难以维持。
Explcit联接是在上个世纪被设定的,为什么任何人仍然使用容易出错且难以维护隐式联接超出我的范围。