A 表卡信息表 cardid 为主键B 表人员表   关联A表的 cardidC 表车辆表   也联A表的 cardid卡会产生报警,人员和车辆都可能产生报警。现在想建立一个视图:其中有3个字段, 当cardid能在人员表中查的出来时,用从人员表中查询出来的数据,
                当能从车辆表中查出数据时,用车辆的。 (人员表和车辆表中的外键 cardid不会相同)
求解答!

解决方案 »

  1.   

    B,C表结构一样如下:
    select B.* from A,B where A.cardid=B.cardid and A.cardid=?
    union all
    select C.* from A,C where A.cardid=C.cardid and A.cardid=?
    不一样的话,稍微变下……应该可以实现
      

  2.   

    有没可能2个表都不存在这个cardid呢?
      

  3.   

    select a.* from b left outer join a on b.cardid=a.cardid
    left outer join c left outer join a on c.cardid=a.cardid
      

  4.   

    上面的写错了。
    select a.* from a right outer join b on a.cardid=b.cardid
    right outer join c on a.cardid=c.cardid
      

  5.   

    select a.* from a right outer join b on a.cardid=b.cardid
    right outer join c on a.cardid=c.cardid
      

  6.   

    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)这样?