Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值相关的知识,希望对你有一定的参考价值。
两张表加上一张中间表,是三张表,两张表靠中间表来关联
参考技术A SELECT A.*, B.COL2 FROM A LEFT JOIN B ON A.COL = B.COL就可以了,用左连接追问
三张表,你这个例子没有了中间表
参考技术B select * from a,(select * from b left join c on b.id = c.id) t where a.id = t.id 参考技术C 主表外连接另一个表。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两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值的主要内容,如果未能解决你的问题,请参考以下文章