首页 新闻 会员 周边 捐助

SQL实现两个相同表结构对应列内容比较

0
悬赏园豆:80 [待解决问题]

需求:

有两个相同表结构的数据表T_A、T_B,根据ID比较这两个表中某一条数据各对应列内容的异同,并把对应列不相等的数据内容全部返回,例如:

--表T_A

ID Title Content
1 title1 aaaaaa
2 title2 dddddd
……

--表T_B

ID Title Content
1 title1 bbbbbb
3 title3 cccccc
……

--输出如下形式的结果:Content:aaaaaa->bbbbbb

求解………

Lennox的主页 Lennox | 初学一级 | 园豆:120
提问于:2011-12-05 10:43
< >
分享
所有回答(7)
0

先获得ID相同的行数据,再比较每一列吗,返回不相同的就可以了。

悟行 | 园豆:12559 (专家六级) | 2011-12-05 10:57

支持(0) 反对(0) Lennox | 园豆:120 (初学一级) | 2011-12-05 11:17
2

SELECT 'Content:'+ta.[Content]+'->'+tb.[Content]
  FROM TabA ta LEFT JOIN TabB tb ON ta.Title=tb.Title WHERE ta.[Content]!=tb.[Content]

sunlary | 园豆:934 (小虾三级) | 2011-12-05 11:24

呵呵,问题中只是一个例子,现在我这两张表有20多个字段

支持(0) 反对(0) Lennox | 园豆:120 (初学一级) | 2011-12-05 13:14

@Lennox: 字段多的话按上面的例子多加几个就OK了啊

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2011-12-05 16:23
0

SQL Data Compare  :Red Gate公司出品的专业数据对比工具

澜紫癜青 | 园豆:313 (菜鸟二级) | 2011-12-05 13:48
0
信息化建设 | 园豆:223 (菜鸟二级) | 2011-12-06 09:19
0

方法一:表中加校验字段或查询时加计算列。最好一个函数来计算校验值,每次更新行时调用。

方法二:两个表的比较如果用于数据同步,可以在表中加时间戳字段,不是数据库本身提供的那种,不能用于不同服务器数据的比较,要保存准确的日期时间。可以在触发器中做,也可以在提交数据的过程中统一处理。

星河朗月 | 园豆:210 (菜鸟二级) | 2011-12-06 11:03
0

[秦时明月] | 园豆:738 (小虾三级) | 2011-12-07 16:39
0

请问楼主最后怎么解决的呢?刚好我们的项目中也遇到类似的问题了。Thanks in advance

Harvey.Sun | 园豆:202 (菜鸟二级) | 2013-05-17 10:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册