oracle 想把三张表关联起来,怎么关联?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 想把三张表关联起来,怎么关联?相关的知识,希望对你有一定的参考价值。
sysuser,usermenu,program前两张表相同字符yhdh,后两张表相同的字符cxdh,怎么关联
1、在使用where进行查询的时候,对于查询条件中的字段要指定归属表或者表别名。如下图。
2、如果改为using进行查询的话那就不用指定表别名,using关键字的使用规则就是等值连接而且连接的字段名称和字段类型必须要一致。
3、如果在使用了using关键字进行查询的时候如果添加了表的别名或者是表名,则直接会报如下错误,对于using关键字指定的列名 在查询中是不能使用表名或者表别名的。
4、并且还有一点需要注意的是using后只能接字段名不能使用 大于 等于 小于等符号进行比对。
参考技术A left join 或者 right joinselect * from usermenu
left join sysuser on sysuser.yhdh=usermenu.yhdh
left join program on program.cxdh=usermenu.cxdh
只有这样关联的数据才会处在一行。 参考技术B WHERE条件里写
sysuser.yhdh=usermenu.yhdh and usermenu.cxdh=program.cxdh
例如:
select * from sysuser,usermenu,program
where sysuser.yhdh=usermenu.yhdh and usermenu.cxdh=program.cxdh
这样三张表就关联了。本回答被提问者采纳 参考技术C WHERE sysuser.yhdh=usermenu.yhdh and usermenu.cxdh=program.cxdh 参考技术D SELECT *---可以换成你想要的字段
FROM sysuser S,
usermenu U ,
program P
WHERE S.yhdh= U.yhdh
AND U.cxdh = P .cxdh;
这样应该就没问题了!试试吧!呵呵!
oracle通过两张表更新一张表
有ABC三张表,A表T数据空,需要将BC表中的T数据根据id更新过去,两次update之后发现第一次更新的都变成空的了
参考技术A到底用b还是c来更新?或者有什么关系?
给你写一个用B更新A的吧:
update A set t = (select T from B where a.id = b.id)where exists (select 1 from B where a.id = b.id and b.T is not null);追问
用B和C更新A,但是我分开更新发现,第二次更新将第一次的刷没了
追答where很关键的;
oracle的用其它表更新中没有sqlserver的update from 的语法,用上面的语法where一定要写对。
提示缺少关键字
追答B.ID后面多了个逗号
追问少了个as,我已经做好啦,谢谢
本回答被提问者采纳 参考技术C 更新一张表以上是关于oracle 想把三张表关联起来,怎么关联?的主要内容,如果未能解决你的问题,请参考以下文章
Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值