赶紧来帮忙啊

YY_MM_DD 2011-09-24 08:45:34
A表(id);
B表(id,name);
C表(id,sex);
A表和B表是一对多的关系,B和C是一对一的关系


使用SQL查询出
A表的记录在B中存在,但是B表在C表不存在的记录
...全文
101 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerry0814 2011-10-31
  • 打赏
  • 举报
回复
學習了.謝謝lz
夏夏夏奇 2011-10-30
  • 打赏
  • 举报
回复

SELECT *
FROM A
WHERE A.id=B.id AND B.id NOT IN (
SELECT id
FROM C
)
jianshiku 2011-10-30
  • 打赏
  • 举报
回复
无非就是一个思考的命令吗?问啥。
Northgale 2011-10-18
  • 打赏
  • 举报
回复
select * from (select * from a
INTERSECT
select * from b) d,
(select from b
minus
select * from c)e
where e.id=d.id
类似于上述的查询
Kobayashi 2011-09-28
  • 打赏
  • 举报
回复
select a.* from a , b
where a.id = b.id and b.id not in (select id from c)

这个方法可行。。。
Alessandro_ 2011-09-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hao1hao2hao3 的回复:]

SQL code

SELECT * FROM A WHERE EXISTS(SELECT 1 FROM B WHERE A.ID = B.ID AND NOT EXISTS(SELECT 1 FROM C WHERE C.ID = B.ID ))
[/Quote]+
lxyzxq2008 2011-09-24
  • 打赏
  • 举报
回复

( select cloa1 from A,B where a.cola2=1 and A.cola1=B.colb1
union
select cloa1 from A,B where a.cola2=2 and A.cola1=B.colb2
)
minus
select cola1 from A
lxyzxq2008 2011-09-24
  • 打赏
  • 举报
回复
select id from (select id from A,B where A.id = B.id) tab where id not exist (select id from C)
秋雨飘落 2011-09-24
  • 打赏
  • 举报
回复
SELECT * FROM A WHERE EXISTS(SELECT 1 FROM B WHERE A.ID = B.ID AND NOT EXISTS(SELECT 1 FROM C WHERE C.ID = B.ID ))

不要悲剧人生 2011-09-24
  • 打赏
  • 举报
回复
select distinct a.* from a , b
where a.id = b.id
and not exists (select 1 from c where c.id = b.id)
iqlife 2011-09-24
  • 打赏
  • 举报
回复
YY的,
试试这个
A表(cola1,cola2)
B表(colb1,colb2,colb3)

select *
from (
SELECT A.cola1,A.cola2,COUNT(*) AS CNT
FROM A,B
WHERE A.cola1 = B.colb1(+)
AND A.cola2=1
GROUP BY A.cola1,A.cola2
UNION ALL
SELECT A.cola1,A.cola2,COUNT(*) AS CNT
FROM A,B
WHERE A.cola1 = B.colb2(+)
AND A.cola2=2
GROUP BY A.cola1,A.cola2
) where cnt =0
YY_MM_DD 2011-09-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qyweiyy88 的回复:]
同意1楼的方法
[/Quote]

少来些套话。。。麻烦来点实的。。。别磨叽。。跟个女人样。。。
布丁88 2011-09-24
  • 打赏
  • 举报
回复
同意1楼的方法
YY_MM_DD 2011-09-24
  • 打赏
  • 举报
回复
200分呐。。。。高手啊。。。。赶紧来啊。。
YY_MM_DD 2011-09-24
  • 打赏
  • 举报
回复
A表(cola1,cola2)
B表(colb1,colb2,colb3)
如果cola2=1,那么cola1=colb1
如果cola2=2,那么cola1=colb2

cola2=1:代表主记录,cola2=2:代表的是明细,主记录和明细记录在A表都有记录
B表记录了主记录和明细记录的关联,
主记录的cola1记录在B的colb1字段里
明细的cola1记录在B表的colb2字段里
现在我想查询没有明细的主记录

A(1,1);
A(11,2);
A(22,2);
A(2,1);
A(22,2);
A(3,1);
B(1,11,'1的明细记录11');
B(1,22,'1的明细记录22');
B(2,22,'2的明细记录22');
上面的数据A(3,1)是我想要的结果
dawugui 2011-09-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 yy_mm_dd 的回复:]
A表(id);
B表(id,name);
C表(id,sex);
A表和B表是一对多的关系,B和C是一对一的关系


使用SQL查询出
A表的记录在B中存在,但是B表在C表不存在的记录
[/Quote]
select a.* from a , b
where a.id = b.id and b.id not in (select id from c)

select a.* from a , b
where a.id = b.id and not exists (select 1 from c where c.id = b.id)
hao1hao2hao3 2011-09-24
  • 打赏
  • 举报
回复

SELECT * FROM A WHERE EXISTS(SELECT 1 FROM B WHERE A.ID = B.ID AND NOT EXISTS(SELECT 1 FROM C WHERE C.ID = B.ID ))

3,491

社区成员

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

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