求一sql语句

rtfvj 2009-03-17 05:55:44
a:id,aName,Type
1 aaa 5
2 aaaa 5
3 ccc 7
4 ddd 5
b:id,bName,Type
1 a 5
2 b 7
c:id,bID,aID
1 1 1
2 1 2

要求当选择a时,得到两个集合:1,aaa和aaaa;2,ddd
当选择b时 也得到两个集合:1,空;2,ccc
(即不管选择那个,首先要同type的,然后根据c表的关联分成两部分:有关联,无关联)
...全文
90 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2009-03-18
  • 打赏
  • 举报
回复
反正我是看不懂
starsword 2009-03-18
  • 打赏
  • 举报
回复
第一张表:

select aName from a where Type in (select Type from b where bName = '选择项') and id in (select aID from c where bID in (select id from b where bName = '选择项'))

第二张表 :
select aName from a where Type in (select Type from b where bName = '选择项') and id not in (select aID from c where bID in (select id from b where bName = '选择项'))
rtfvj 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 rtfvj 的帖子:]
a:id,aName,Type
1 aaa 5
2 aaaa 5
3 ccc 7
4 ddd 5
b:id,bName,Type
1 a 5
2 b 7
c:id,bID,aID
1 1 1
2 1 2

要求当选择a时,得到两个集合:1,aaa和aaaa;2,ddd
当选择b时 也得到两个集合:1,空;2,ccc
(即不管选择那个,首先要同type的,然后根据c表的关联分成两部分:有关联,无关联)
[/Quote]

补充:假如选择a时,经过两重过滤:1,首先把不是同type的过滤掉不要;2,在1的基础上,根据是否在c表中与选择项分成两部分,就是说我要得到两张表
老潇 2009-03-18
  • 打赏
  • 举报
回复
没听明白
qzw4549689 2009-03-18
  • 打赏
  • 举报
回复
帮顶
love_cloud 2009-03-17
  • 打赏
  • 举报
回复
不明白
starsword 2009-03-17
  • 打赏
  • 举报
回复
你说的选择 a 和 b 指的是 bName 吧,同 type 好理解

但是根据 c 表的关联分成两部分,是什么意思?
liu4545533 2009-03-17
  • 打赏
  • 举报
回复
SELEC * FROM A WHERE TYPE IN(SELECT TYPE FROM B WHERE Bname='选择字符') union select * from a where id in(select id from c where bid in(select id from b where bname='选择字符') )
zzxap 2009-03-17
  • 打赏
  • 举报
回复
我晕

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧