如何用一条SQL完成任务

BurmeHill 2010-10-01 05:43:09
遇到一个问题,请各位高手指点:
有表如下

表 AAA BBB CCC
列 a b a e d e
1 m 1 u 11 X
2 m 1 w 11 Z
3 m 2 X 22 ..
4 n 2 Z 22 ..
3 X 33 ..
3 Z 33 ..
3 Y
4 X
4 Z

表中AAA.a与BBB.a是主外键关系,BBB.e与CCC.e没有关系,但是其中的值可能是一样的。

现已知 AAA.b=m, CCC.d=11, 想用一条SQL得到AAA.a=2的结果
注意当BBB.e和CCC.e进行比较时,e列的记录数和值需要完全一样才符合要求。

谢谢!
...全文
53 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-10-01
  • 打赏
  • 举报
回复
select distinct a
from BBB b
where not exists(select 1 from BBB where a=b.a and e not in (select e from CCC where d=1))
and not exists(select 1 from CCC where d=1 and e not in (select e from BBB where a=b.a))
dawugui 2010-10-01
  • 打赏
  • 举报
回复
select a.* 
from aaa a, bbb b, ccc c
where a.b = 'm' and c.d = 11 and a.a = b.a and c.e = b.e


select a.* 
from aaa a, bbb b, ccc c
where a.b = 'm' and c.d = 11 and a.a = b.a and c.e = b.e and a.a = 2

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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