reslinks: id,from_nodename,to_nodename,from_nodeid,to_nodeid
resnodes:id,alias表resnodes的id有时候对应reslinks的from_nodeid,有时候对应reslinks的to_nodeid,
当对应from_nodeid时候,alias里面的内容对应from_nodename,
当对应to_nodeid时候,alias里面的内容对应to_nodename,
但是在reslinks表中的from_nodename,和to_nodename此时的数据确是空的,只有在resnodes保存了记录
就是只有表resnodes中 的alias里面有数据我想做一个视图重现reslinks表中的数据,就是
用alias来代替reslinks表中的from_nodename,to_nodename数据,应该怎么写
resnodes:id,alias表resnodes的id有时候对应reslinks的from_nodeid,有时候对应reslinks的to_nodeid,
当对应from_nodeid时候,alias里面的内容对应from_nodename,
当对应to_nodeid时候,alias里面的内容对应to_nodename,
但是在reslinks表中的from_nodename,和to_nodename此时的数据确是空的,只有在resnodes保存了记录
就是只有表resnodes中 的alias里面有数据我想做一个视图重现reslinks表中的数据,就是
用alias来代替reslinks表中的from_nodename,to_nodename数据,应该怎么写
解决方案 »
- 使用OCI C语言开发中 关于调用存储过程 返回值问题
- 关于VC连接oracle的问题,急,急,急,急,急,急,急
- 一张表用SELECT同时插入多行数据?
- 转储出来的文件??
- 怎么建此数据库表?
- 求助高手,关于语句问题,在线等.谢谢了
- 一个约束的简单问题
- 帮我看看这个update...谢谢
- oracle怎么返回两个date类型之间的时间差
- ORA-01578:oracle data block orrupted错误该如何解决
- 安装oracle提示错误1335。安装所需的cab文件‘date1.cab’已损坏,不能使用。
- 请问怎么用一条语句就能让A用户对B用户的所有表/视图拥有只读权限? 同义词能行吗?
1。用union,分别把与from和to的两组纪录,抽取出来,union起来。
2。假如reslinks里面的from和to不同时存在的话,只要用表连接,连接resnodes两次。条件分别是from和to和resnodes的id来连接。
id,from_nodename,to_nodename,from_nodeid,to_nodeid是一行数据
而不是
id,from_nodename,from_nodeid
id,to_nodename,to_nodeid
这样
id,from_nodename,from_nodeid
id,to_nodename,to_nodeid
容易理解的说法就是,
1。
让reslinks和resnodes第一次连接,选出
reslinks.ID,reslinks.from_nodeid,resnodes.alias,reslinks.to_nodeid,reslinks.to_nodename
条件是reslinks.from_nodeid 等于resnodes.id
2.
让1的结果和resnodes第二次连接,
这次的条件是 [第一次结果].to_nodeid 等于resnodes.id这样可以理解了吗?
select * from (
select RESLINKS.ID ,RESLINKS.FROM_NODEID,RESLINKS.TO_NODEID,RESLINKS.FROM_NODENAME,RESLINKS.TO_NODENAME,
RESNODES.ID nodeid,RESNODES.Alias from RESLINKS,RESNODES
where RESLINKS.From_Nodeid(+)=RESNODES.Id
union
select RESLINKS.ID ,RESLINKS.FROM_NODEID,RESLINKS.TO_NODEID,RESLINKS.FROM_NODENAME,RESLINKS.TO_NODENAME,
RESNODES.ID nodeid,RESNODES.Alias from RESLINKS,RESNODES
where RESLINKS.To_Nodeid(+)=RESNODES.Id) 但是这样union是出来两行的
有关RESLINKS.ID内容的是两行
1行是reslinks.from_nodeid 等于resnodes.id的记录
另外1行是reslinks.to_nodeid 等于resnodes.id的记录
我想让这两行并到1行去怎么写
From (
Select T1.ID,T1.from_nodeid,M1.alias As from_nodename,T1.to_nodeid,T1.to_nodename
From reslinks T1,resnodes M1
Where T1.from_nodeid(+)=M1.Id
) T2,resnodes M2
Where T2.To_Nodeid(+)=M2.Id