oracle 查询所有组合,Oracle 数据库中 根据 【组合分类】 查询 数据 如何写SQL ?...

Oracle 数据库中 根据 【组合分类】 查询 数据 怎么写SQL ???

分类数据:

CID  CName

-------------

1   A

2   B

3   C

主表数据:

MID  MName CID    CODE

------------------------

1   M      1       1

2   M      2       1

3   H      1       2

4   H      3       2

5   K      1       3

6   K      2       3

现在 我想根据 分类 A + B 查询 主表数据  结果集为:

CODE  MName

------------------

1      M

3      K

-------------------------------------------------------

哪位大牛 可以帮小弟 写下? 在线等 完事立马结贴把分送上!!!

数据库

Oracle

分享到:

------解决方案--------------------

假设上下两张表分别为TAB1和TAB2:

select tab2.code, tab2.mname

from tab2, tab1

where tab2.cid = tab1.cid

and tab1.cid in ('A', 'B')

group by tab2.code, tab2.mname;

------解决方案--------------------

create table pm_test(CID number,  CName varchar2(30))

insert into pm_test values(1,'A');

insert into pm_test values(2,'B');

insert into pm_test values(3,'C');

commit;

create table pm_test1(MID number,  MName varchar2(50), CID number,    CODE number)

insert into pm_test1 values (1,'M',1,1);

insert into pm_test1 values (2,'M',2,1);

insert into pm_test1 values (3,'H',1,2);

insert into pm_test1 values (4,'H',3,2);

insert into pm_test1 values (5,'K',1,3);

insert into pm_test1 values (6,'K',2,3);

commit;

--查询思路:把同一个CODE+MNAME的CID组合成一个值,然后根据这个值关联查询即可

select code,mname from

(

select t2.code,t2.mname,wm_concat(t2.cid) cid from pm_test1 t2 group by t2.code,t2.mname

) t3,(select wm_concat(t2.cid) cid from pm_test t2 where cname in ('A', 'B')) t4

where t3.cid=t4.cid

--结果

CODEMNAME

11M

23K

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值