关于SQL的几个问题,在线等~~~~
最近遇到几个SQL问题,解决不了。请大家帮忙啊
1。left join和在where 里面写(+)的方式是不是有区别?区别在哪儿?
现在遇到的问题是用left join的写法可以解决,但是(+)不知道怎么解决
实现一:
select
A.a,
B.b,
C.c,
C.d
from A
left join B on
A.a = B.b
left join C on
A.a = C.c and
B.b = C.d
where
A.a = '001'
实现二
select
A.a,
B.b,
C.c,
C.d
from A,B,C
where
A.a = '001' and
A.a = B.b(+) and
A.a = C.c(+) and
B.b = C.d(+)
这样会提示错误,请问用(+)的方式怎么写才能没有错误结果和实现一的一样?
2。两个表A,B关联的时候,如果A里面的字段没有和B的关联上,那么用一个定值
和B关联,怎么实现好?现在的处理是
A.a,
DECODE(B1.b,NULL,B2.b,B1.b)
from A
left join B B1 on
A.a = B1.b
left join B B2 on
B2.b = '001'
where
0 = 0
当然实际的SQL要比这复杂的多,关联的条件很多。所以最好是有别的处理方法。
3。谁有好的实用的SQL语法提供一下啊,不是随便在网上找的那种
最好是简单易懂并且全面的资料。
如果问题解决了,可以另开帖送分~~ 大家帮忙啊!!!!