a表
id account1 account2 account3
1 1234 2345
b表
id account accname
1 1234 阿斯顿
2 2345 阿
3 4567 二
结果
名称1 名称2 名称3
阿斯顿 阿
sql查询一张表多列对应另一张表的值
答案:2 悬赏:60
解决时间 2021-02-03 18:38
- 提问者网友:敏感魔鬼
- 2021-02-03 10:33
最佳答案
- 二级知识专家网友:修女的自白
- 2021-02-03 11:48
给出的描述不是很清晰,给出的例子比较简单,不知道能不能覆盖所有情况,
下面给出一些提示和思路,如果有问题可以继续追问。
环境—oracle9i
一、建表:
create table zhidao_20131010_1_tab1
(id varchar2(2),
account1 varchar2(10),
account2 varchar2(10),
account3 varchar2(10));
create table zhidao_20131010_1_tab2
(id varchar2(2),
account varchar2(10),
accname varchar2(10));
二、插入记录:
insert into zhidao_20131010_1_tab1
select '1','1234','2345',null from dual;
insert into zhidao_20131010_1_tab2
select '1','1234','阿斯顿' from dual
union all
select '2','2345','阿' from dual
union all
select '3','4567','二' from dual
;
commit;
三、语句:
select rownum,accname from zhidao_20131010_1_tab2
where account in (
select account1 from zhidao_20131010_1_tab1
union all
select account2 from zhidao_20131010_1_tab1
union all
select account3 from zhidao_20131010_1_tab1);
四、查询结果:
ROWNUM ACCNAME
1 阿斯顿
2 阿
下面给出一些提示和思路,如果有问题可以继续追问。
环境—oracle9i
一、建表:
create table zhidao_20131010_1_tab1
(id varchar2(2),
account1 varchar2(10),
account2 varchar2(10),
account3 varchar2(10));
create table zhidao_20131010_1_tab2
(id varchar2(2),
account varchar2(10),
accname varchar2(10));
二、插入记录:
insert into zhidao_20131010_1_tab1
select '1','1234','2345',null from dual;
insert into zhidao_20131010_1_tab2
select '1','1234','阿斯顿' from dual
union all
select '2','2345','阿' from dual
union all
select '3','4567','二' from dual
;
commit;
三、语句:
select rownum,accname from zhidao_20131010_1_tab2
where account in (
select account1 from zhidao_20131010_1_tab1
union all
select account2 from zhidao_20131010_1_tab1
union all
select account3 from zhidao_20131010_1_tab1);
四、查询结果:
ROWNUM ACCNAME
1 阿斯顿
2 阿
全部回答
- 1楼网友:瘾与深巷
- 2021-02-03 13:02
这个描述好难给你回答
要什么样的查询结果都不说 怎么查
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯