2016-01-14 58 views
0

如果在两个不同的数据库database1和database2中发现了相同的名称(如果用户的状态是“employee”在其中一个表中),我已经编写了此SQL查询以返回具有姓和名的用户数据库1。执行条件检查的SQL插入

SELECT distinct 
    FirstName, LastName 
FROM 
    database1.dbo.test1 a 
JOIN 
    database1.dbo.test2 b ON b.id = a.id 
JOIN 
    database1.dbo.test3 c ON a.id = c.id 
JOIN 
    database2.dbo.test d ON a.firstname + ' ' + a.lastname = d.firstname + ' '+ d.lastname 
WHERE 
    c.status = 'employee' 

现在,我需要比较我得到了使用上面的查询与第一和最后一个名字这名字和姓氏数据库“DATABASE2”,如果发现匹配,我需要在列“isemployee”插入的是。如果找到名称匹配或条件为真,您能否请建议如何应用条件来比较我在上面选择查询时使用的名称和database2中的名称,并将其插入数据库2的“isemployee”列中。

回答

2

您可以使用下面的代码...

UPDATE d SET isemployee = 'YES!' 
FROM 
database1.dbo.test1 a 
join database1.dbo.test2 b on b.id = a.id 
join database1.dbo.test3 c on a.id = c.id 
join database2.dbo.test d 
on a.firstname + ' ' + a.lastname = d.firstname + ' '+ d.lastname 
where 
c.status = 'employee' 

所有你需要做的就是用自己的查询来更新列你想要的,因为已经进行了比较

+1

warwreken提供的答案是解决我的问题。谢谢!!! – TechPro

2

你可以像这样使用Exists

UPDATE d2 
SET  d2.isemployee = 1 
FROM database2.dbo.test d2 
WHERE EXISTS (SELECT * 
       FROM database1.dbo.test1 a 
         JOIN database1.dbo.test2 b ON b.id = a.id 
         JOIN database1.dbo.test3 c ON a.id = c.id 
       WHERE c.status = 'employee' 
         AND a.firstname = d2.firstname 
         AND a.lastname = d2.lastname)