2012-06-12 76 views
3

在Oracle中,我有:Oracle和SQL Server选择(+),相当于

SELECT t2.Regkood, t2.naitatel, t2.naitafaks, t3.lahtiolekuaeg, t1.* 
FROM table1 t1, table2 t2, table3 t3 
WHERE t1.client = t2.client AND t1.client = t3.client(+) AND t1.client = 414246 

如何得到相同的SQL Server?

感谢

+1

:使用'LEFT OUTER加入'语法 –

+5

你不应该在Oracle中使用'(+)'。使用标准的'JOIN'语法。 –

回答

5
SELECT t2.Regkood, 
     t2.naitatel, 
     t2.naitafaks, 
     t3.lahtiolekuaeg, 
     t1.* 
FROM table1 t1 
     INNER JOIN table2 t2 
       ON t1.client = t2.client 
     LEFT JOIN table3 t3 
       ON t1.client = t3.client 
WHERE t1.client = 414246 

一些样本,以了解加入:

LEFT OUTER JOIN在ORACLE

SELECT * 
FROM A, B 
WHERE A.column = B.column(+) 

RIGHT OUTER JOIN在Oracle

SELECT * 
FROM A, B 
WHERE B.column(+) = A.column 
+0

我认为这应该是一个左连接而不是正确的连接 –

+0

@Romil:出于兴趣,你能解释一下在Oracle中+符号代表什么? – praveen

+0

在以前版本的oracle(我们使用+)和sql server(我们使用*)来表示左或右连接。 –