在编程方面,我真的是个新手。我一直在使用用C#MVC5编写的Web应用程序。我正在使用MSSQL作为我的数据库和一些编程模型,如Linq和Entity Framework。
我现在需要处理的是单个表中具有相同内容的合并行。
例如,我有以下表格,其中包含以下列:
表 contact_type
[socialId][socialName][webUrlTemplate]表 rated_merge
[mergeId][timestamp][ratedId]
表评分*
[ratedId][fname][lname][mergeId][ratings]表** rated_contact
[id][ratedId][socialId][value]
我有一个表单,其中用户可以输入他们的社交网络/交友网站用户名/ ID,在其中提交,表单的内容将保存到表评级和 rated_contact。
在提交表单后,它会首先检查表单是否在评级和 rated_contact 表中具有匹配的记录。 如果没有匹配的记录,表单内容将保存为新记录。
但是如果有匹配,这就是合并的地方 (仅当系统检测到来自from的用户名与数据库中的任何用户名匹配时才会发生匹配)。将比较匹配的行,将创建包含所比较的行的所有差异和匹配的新记录。然后,之前的记录将被标记为已删除。此新记录将完成评级人员的个人资料。
创建合并后,表 rated_contact 中的[ratedId]列将从新创建的合并记录更新为[ratedId]。然后使用 rated_merge 表,我需要插入一个包含[timestamp],[ratedId]和[mergeId]的新记录,这是一个自动增量字段。
我需要获取[mergeId]并更新所有匹配记录的评级表中的[mergeId]列。
我应该采取什么方法的建议?
谢谢你们。
答案 0 :(得分:-1)
您可以使用此查询
select fullname,max(facebook_id) facebook_id,max(twitter_id)twitter_id,max(insta_id)insta_id from member group by fullname
答案 1 :(得分:-1)
insert into table_to_insert
([fullname],[facebook_id],[twitter_id],[insta_id])
select [fullname],isnull(t1.[facebook_id],t2.[facebook_id]),isnull(t1.[twitter_id],t2.[twitter_id]),isnull(t1.[insta_id],t2.[insta_id])
from tablesource1 t1
inner join
tablesource2 t2
on t1.fullname=t2.fullanme
也许它会帮助你