| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3953 人关注过本帖
标题:求:SQL 在A表中查询B表中相同记录的方法
只看楼主 加入收藏
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
结帖率:97.14%
收藏
已结贴  问题点数:5 回复次数:8 
求:SQL 在A表中查询B表中相同记录的方法


A表,字段A1,A2,A3,A4

B表, 字段B1,B2,B3,B4

A表与B表的各字段都一样,B1=A1,B2=A2,B3=A3,B4=A4

想法是:根据B表中各字段的内容,查找A表各字段的内容,如A、B表的各字段值都一样,就不把B表的数

据添加到A表中,否则,则将B表的记录添加到A表中

搜索更多相关主题的帖子: 查询 记录 SQL 
2010-01-20 15:24
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
用下面方法测试一下吧!


create table a (a1 char(2),a2 int,a3 int)    --创建A表
go
create table b (b1 char(2),b2 int,b3 int)    --创建B表
go

--现在给A、B两表分别添加一些数据,然后试试下面语句就能得到你想要的结果了。

insert into a select * from b where not exists(select * from a where a.a1=b.b1 and a.a2=b.b2 and a.a3=b.b3)
go

★★★★★为人民服务★★★★★
2010-01-20 16:21
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
又:以上方法在SQL Server中测试过。如果数据行很多,此法速度较慢!

[ 本帖最后由 cnfarer 于 2010-1-20 16:27 编辑 ]

★★★★★为人民服务★★★★★
2010-01-20 16:25
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
我要的是比较查找所有的各字段值是否相同。如何写?

[ 本帖最后由 YZCZWCB 于 2010-1-20 16:39 编辑 ]
2010-01-20 16:29
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
你不是这样说的吗?“根据B表中各字段的内容,查找A表各字段的内容,如A、B表的各字段值都一样,就不把B表的数据添加到A表中,否则,则将B表的记录添加到A表中”

不太明白你的问题!

★★★★★为人民服务★★★★★
2010-01-20 16:42
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
是的呀,我的两个表的字段数很多,要一个一个(AND)写下去,是不是要累死。有没有不把全部字段都写上去的方法。

我这样讲吧,B表与A表的全部字段值相同,B表的内容就不添加到A表中,不相同的某个记录,就加到A表中

[ 本帖最后由 YZCZWCB 于 2010-1-20 16:49 编辑 ]
2010-01-20 16:47
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:5 
你不比较又能怎样,这说明表的设计有问题啊!应该使用关键字!

当然,如果你A表中不存在重复行(前提是重复的行只要一条)也可以这样:先将A、B表数据合并可以先放在一个临时表中(用DISTINCT去除重复行),再清空A表,然后将临时表中的数据加到A表中即可。

[ 本帖最后由 cnfarer 于 2010-1-20 20:06 编辑 ]

★★★★★为人民服务★★★★★
2010-01-20 19:11
小主板
Rank: 2
等 级:论坛游民
帖 子:187
专家分:21
注 册:2009-6-28
收藏
得分:0 
正需要,谢谢楼主解答!!
2010-01-30 11:52
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
我做了一个程序,根据B表的各字段的值,查找A表中对应字段的值,如果有一个字段值不同(或保存后更改)都对B表的这条记录作删除标记,然后把这条记录替换A表的这条记录。
2010-01-31 08:41
快速回复:求:SQL 在A表中查询B表中相同记录的方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050258 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved