找回密码
 立即注册
搜索
查看: 262|回复: 7

关于sql的问题,急

[复制链接]

73

主题

1134

回帖

1599

积分

金牌会员

耗子

积分
1599
发表于 2004-8-2 18:04:49 | 显示全部楼层 |阅读模式
小弟新学编程,现在遇到一个问题,
在sql2000中,想删除两张表的同一字段。。。

打个比方,a表里面有个aid,b表有个bid,里面的内容是一样,如何写sql语句,使得这个两个字段中内容为abc的行都删除。。。

谢谢大家。。。

599

主题

1万

回帖

1万

积分

版主

积分
15875
发表于 2004-8-2 19:04:04 | 显示全部楼层
只用一个标准的SQL比较难实现,基本想法是创建一个临时C表,C表中包括一个字段CID。

把相同的记录放到C中,然后删除A和B。

--相同的记录放到C中
INSERT INTO C(CID)  SELECT A.AID FROM A, B WHERE A.AID = B.BID

--删除A
DELETE FROM A WHERE AID IN (SELECT CID FROM C);

--删除B
DELETE FROM B WHERE BID IN (SELECT CID FROM C);
回复

使用道具 举报

73

主题

1134

回帖

1599

积分

金牌会员

耗子

积分
1599
 楼主| 发表于 2004-8-2 20:20:03 | 显示全部楼层
可能我没有说清楚,现在是这样,表a有一个字段aid,里面有一行aid内容是abc,其他内容和b表不一样,而b表也有一个字段bid,里面同样有一行bid的内容是abc。。现在就是想做到把这行有abc的内容在a表和b表中都删除掉。。。
回复

使用道具 举报

5

主题

710

回帖

966

积分

金牌会员

积分
966
发表于 2004-8-4 06:38:18 | 显示全部楼层
guodl说得很对,不是他不明白,而是你不懂。
回复

使用道具 举报

85

主题

238

回帖

424

积分

中级会员

积分
424
发表于 2004-8-4 15:01:59 | 显示全部楼层
直接用两个语句即可:
delete from a where aid='abc'
delete from b where bid='abc'
回复

使用道具 举报

5

主题

710

回帖

966

积分

金牌会员

积分
966
发表于 2004-8-6 10:54:57 | 显示全部楼层
实现该题目的SQL语句是:
--相同的记录放到C中
INSERT INTO C(CID) SELECT A.AID FROM A, B WHERE A.AID = B.BID

--删除A
DELETE FROM A WHERE AID IN (SELECT CID FROM C WHERE AID=‘abc’);

--删除B
DELETE FROM B WHERE BID IN (SELECT CID FROM C WHERE AID=‘abc’);
回复

使用道具 举报

269

主题

3291

回帖

4703

积分

论坛元老

积分
4703
发表于 2004-8-6 13:38:28 | 显示全部楼层
如果两张表有关联关系,可以建一个视图包含这两个字段,然后对视图写sql
回复

使用道具 举报

126

主题

821

回帖

1265

积分

金牌会员

积分
1265
发表于 2004-8-15 04:29:55 | 显示全部楼层
是删除重复的内容吗
delete from 表a where exists (select * from 表b where 表b.bid=表a.aid)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-20 05:40 , Processed in 0.102908 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表