日期:2014-05-17  浏览次数:20796 次

求一sql写法

公共配置表
配置ID  配置内容
1        内容1
2        内容2

个人配置表
用户ID  配置ID  配置内容
admin    2        内容3


我想查询用户admin配置的时候出现的结果
配置ID   配置内容
1           内容1
2           内容3

就是查询出所有配置内容,如果该用户有个人配置,则覆盖公共配置的内容
求大神帮忙
sql

------解决方案--------------------
公共配置表是谁配置的?
------解决方案--------------------
SQL> create table pubcfg(id number,content varchar2(10));

表已创建。

SQL> create table usercfg(userid varchar2(10),id number,content varchar2(10));

表已创建。

SQL> insert into pubcfg values(1,'content1');

已创建 1 行。

SQL> insert into pubcfg values(2,'content2');

已创建 1 行。

SQL> insert into usercfg values('admin',2,'content3');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select nvl(b.id,a.id),nvl(b.content,a.content)
  2  from pubcfg a
  3  left join usercfg b
  4  on a.id=b.id
  5  and b.userid='admin';

NVL(B.ID,A.ID) NVL(B.CONT
-------------- ----------
             2 content3
             1 content1

SQL>