2016-01-14 82 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)