有没有办法在SQL Server中进行oracle样式连接?
select *
from t1, t2
where t1.id = t2.id (+)
为什么最好使用“左外连接”和“内连接”类型?我发现阅读旧表单更容易,特别是如果涉及复杂的表连接。
答案 0 :(得分:9)
Microsoft正在使用ANSI ISO SQL标准。 Mark Rittman对ANSI joins and why you should use them有一个很好的解释。但是,SQL Server不支持该文章和ANSI标准中列出的NATURAL JOIN语法。您可能更熟悉旧的Oracle语法,但它是标准的,您可以在其他数据库产品上找到它。
要回答您的问题 - 无法在SQL Server上执行Oracle样式连接。即使是*=
和=*
样式联接也已弃用,并且会在下一版本的产品中完全删除。
答案 1 :(得分:4)
SELECT *
FROM t1
LEFT OUTER JOIN t2 ON t1.id = t2.id
这篇AskTom文章向您展示了Oracle的(+)到(LEFT AND RIGHT) OUTER JOIN
的语法等效性,SQL Server使用OUTER JOIN
语法。