注册 登录
编程论坛 SQL Server论坛

请教关于三表查询的问题(oracle转SQL的写法)

happy晴天 发布于 2012-05-15 22:26, 732 次点击
表名:a,b, c
a表字段A,D  b表字段B, c表字段C  

oracle写法:
SELECT a.A,b.B,c.C
FROM
a,b,c
where
a.D(+)=0
AND b.B=a.A(+)
AND a.A = c.C (+)

变成SQL的写法是什么
第一种写法:
SELECT a.A,b.B,c.C
FROM
b LEFT OUTER JOIN a ON b.B=a.A AND a.D=0
LEFT OUTER JOIN c ON a.A = c.C

第二种写法:
SELECT a.A,b.B,c.C
FROM
a LEFT OUTER JOIN c ON a.A = c.C AND a.D = 0
RIGHT OUTER JOIN b ON b.B=a.A AND a.D = 0

第三种写法:
SELECT a.A,b.B,c.C
FROM
a LEFT OUTER JOIN c ON a.A = c.C
RIGHT OUTER JOIN b ON b.B=a.A
WHERE a.D = 0

这三种写法哪种对,还是有别的写法,谢谢大家了
主要就是三个表左,右连接的问题

2 回复
#2
yuan_a6162012-05-31 21:27
好像都不对,给你个参考...

select a.部门编号,a.部门名称,a.负责人,b.人员编号,b.人员姓名,b.部门名称,b.学历,b.技术职称
from 明日部门表 a left outer join 明日人员表 b on a.部门名称=b.部门名称
-----外连接左查询
#3
prettyboy6112012-06-04 23:23
其实多表查询并不难   只要说明表与表之间通过那个列名来建立关联关系就可以了

给你几个SQL的方法

select a.A,b.B,c.C from a where a.A=b.B and b.B=c.C

select a.A , b.B , c.C from a join b on a.A=b.B    join c on b.B= c.C
1