SELECT ... AI.TYPETITLE AS SAREAID, PI.TYPETITLE AS SPOSTTITLEID
FROM exp_expert E,
E_TYPE_FUNCDESIGNATION PI,
E_TYPE_AREA AI
WHERE E.SPOSTTITLEID=PI.TYPEID(+)
AND E.SAREAID=AI.TYPEID (+)
应该这样。
FROM exp_expert E,
E_TYPE_FUNCDESIGNATION PI,
E_TYPE_AREA AI
WHERE E.SPOSTTITLEID=PI.TYPEID(+)
AND E.SAREAID=AI.TYPEID (+)
应该这样。
解决方案 »
- 安装Oracle参数NLS_NCHAR_CHARACTERSET在哪设置
- 求助关于oo4o的操作
- 求一个sql语句
- 【在线求助】用存储过程写一条查询语句????很急.....................
- 如何给已经建好的数据库表添加外键?
- 如何返回存储过程中的值!我是一个新手 请大家帮一下帮 谢谢!!!!!!
- 关于pl/sql中的复合条件的写法
- Oracle 8.1.6 : ORA-01033: ORACLE initialization or shutdown in progress
- 如何重建CONTROL FILE
- linux客户端连接oracle数据库报ORA-12154
- oracle817,redhat9,net8配置启动错误
- 朋友发来一些有关数据的问题,在下对Oracle不熟!在此请求帮助!
E.SAREAID=AI.TYPEID 满足
但
E.SPOSTTITLEID=PI.TYPEID 不满足
,E应该返回记录还是返回空?
---------- ---------- ----------
1 aaa 1
2 bbb 1SQL> select * from tb; ADDR NAME OTH
---------- --------------- ----------
1 aaa a1
2 aaa a2
2 bbb b1SQL> select * from ta,tb where ta.id=tb.addr(+) and ta.name=tb.name(+); ID NAME N ADDR NAME OTH
---------- ---------- ---------- ---------- --------------- ----------
1 aaa 1 1 aaa a1
2 bbb 1 2 bbb b1SQL>
什么意思?
楼主是一个表同时外连接倒另外两个不同的表,肯定有歧义。
(你贴出来的是一个表同时外连接倒另外一个表)
SQL> select * from ta; ID NAME N
---------- ---------- ----------
1 aaa 1
2 bbb 1SQL> select * from tb; ADDR NAME OTH
---------- --------------- ----------
1 aaa a1
2 aaa a2
2 bbb b1SQL> select a.addr,a.name,b.id,b.name from (
2 select tb.addr,tb.name,ta.id ida,ta.name namea from tb,ta where tb.addr=ta.id(+)
3 ) a,ta b where a.addr=b.id(+); ADDR NAME ID NAME
---------- --------------- ---------- ----------
1 aaa 1 aaa
2 aaa 2 bbb
2 bbb 2 bbbSQL>