如果用户的状态是' employee'我编写了这个SQL查询,如果在两个不同的数据库database1和database2中找到相同的名字,则返回具有姓和名的用户。在database1中的一个表中。
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"如果找到匹配,我需要在列#34; isemployee"中插入是的。您能否建议我如何应用条件来比较我上面使用的名称选择查询和数据库2中的名称并插入列#34; isemployee"如果找到名称匹配或条件为真,则为database2。
答案 0 :(得分: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 )
答案 1 :(得分: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'
您需要做的就是使用自己的查询来更新所需的列,因为已经进行了比较