首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

数据库视图有关问题。 #

2012-05-24 
数据库视图问题。 在线等#######A 表卡信息表 cardid 为主键B 表人员表关联A表的 cardidC 表车辆表也联A表

数据库视图问题。 在线等#######
A 表卡信息表 cardid 为主键

B 表人员表 关联A表的 cardid

C 表车辆表 也联A表的 cardid

卡会产生报警,人员和车辆都可能产生报警。

现在想建立一个视图:

其中有3个字段, 当cardid能在人员表中查的出来时,用从人员表中查询出来的数据,
  当能从车辆表中查出数据时,用车辆的。 (人员表和车辆表中的外键 cardid不会相同)


求解答!

[解决办法]
B,C表结构一样如下:

SQL code
select B.* from A,B where A.cardid=B.cardid and A.cardid=?union allselect C.* from A,C where A.cardid=C.cardid and A.cardid=?
[解决办法]
select a.* from a right outer join b on a.cardid=b.cardid
right outer join c on a.cardid=c.cardid
[解决办法]
create view vw_view as select cardid ,col2,col3 from man
union all
select cardid ,col2,col3 from car
union all
select cardid ,col2,col3 from card t 
where not exists(select 1 from man a where a.cardid=t.cardid)
and not exists(select 1 from car a where a.cardid=t.cardid)

这样?

热点排行