[英]How to SELECT record from a table where column is equal to a value but shouldn't be equal to another value?
[英]How to select column equal another type of value of another column
我有2個表Hre_Profile
和Hre_WorkHistory
。 一個帶有以下腳本的2表聯接:
alter table Hre_Profile add constraint fk_01 foregin key(ID) references
Hre_workhistory (ProfileID)
Hre_Profile
的架構如下:
Hre_Profile (ID UNIQUEIDENTIFIER primary key, SupervisorID UNIQUEIDENTIFIER, CodeEmp varchar(50))
ID | SupervisorID | codeemp
D4ABD930-AC52-4F39-B235-0E6CA6C32309 | NULL |400287
6FE02B7A-09C7-4955-80D7-0FD1A42CDD8B | NULL |1002
ABC12343-AC52-4F39-B235-0E6CAVCXXCDS | NULL |10007
Hre_WorkHistory
的架構如下:
Hre_WorkHistory (ID UNIQUEIDENTIFIER primary key, ProfileID UNIQUEIDENTIFIER, Supervisor varchar(50))
ID | ProfileID |Supervisor
1aE02B7A-09C7-4955-80D7-0FD1A42abD |D4ABD930-AC52-4F39-B235-0E6CA6C32309|1002
12343-AC52-24349-B235-0E6CAGVCXXCD |6FE02B7A-09C7-4955-80D7-0FD1A42CDD8B|10007
我想更新列SuperVisorID (Hre_Profile) = s2.supervisor (type ID)
update s1 set s1.SupervisorID = (s2.supervisor) from hre_profile s1 inner join hre_workhistory s2 on s1.id=s2.profileid
select s1.codeemp, s1.supervisorID, s2.supervisor
from hre_profile s1
inner join hre_workhistory s2 on s1.id=s2.profileid
Codeemp | SupervisorID | supervisor
400287 | 6FE02B7A-09C7-4955-80D7-0FD1A42CDD8B | 1002
1002 | ABC12343-AC52-4F39-B235-0E6CAVCXXCDS | 10007
第三次嘗試-根據您在下面的評論,我有更改更新聲明-
update s1
set s1.SupervisorID = s1.ID
from Hre_Profile s1
inner join Hre_WorkHistory s2 on s1.id=s2.profileid and s1.CodeEmp = s2.Supervisor
第二次嘗試-好的,您正在嘗試從VARCHAR
列更新UNIQUEIDENTIFIER
列。 我認為您必須更改Hre_Profile
表並將SupervisorID
列的數據類型更改為VARCHAR(50)
。
ALTER TABLE Hre_Profile ALTER COLUMN SupervisorID VARCHAR(50) NULL;
第一次嘗試-我認為您正在尋找正確的更新語句來更新表。 請嘗試以下語法-
update s1
set s1.SupervisorID = (s2.supervisor)
from hre_profile s1
inner join hre_workhistory s2 on s1.id=s2.profileid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.