我目前正在使用3个表。 USER
,WORKSTATION
和USER_WORKSTATION
(基本上是临时表)。
我的
USER
表格包含user_id
和user_name
,
WORKSTATION
由workstation_id
,workstation_name
和user_id
组成。
截至目前,user_id
列对于所有工作站都是空的,这是我的问题。
我创建了一个表(从excel导入)USER_WORKSTATION
。它仅包含user_name
个及其相应的工作站。在某种程度上,我可以编写一个更新查询,根据WORKSTATION
和user_id
更新USER
表user_name
表中的workstation_name
表USER_WORKSTATION
表中的组合?我目前没有设置任何限制,我正在使用Oracle。
答案 0 :(得分:1)
您可以使用MERGE语句:
MERGE
INTO WORKSTATION W1
USING (SELECT W2.rowid AS rid, U.user_id
FROM USER_WORKSTATION UW
JOIN USER U
ON UW.user_name = U.user_name
JOIN WORKSTATION W2
ON UW.workstation_name = W2.workstation_name
) q
ON (W1.rowid = q.rid)
WHEN MATCHED THEN
UPDATE
SET W1.user_id = q.user_id;
你也可以做UPDATE
,这有点麻烦。
答案 1 :(得分:0)
您好试试这个plsql块。 我假设一个用户一个工作站。
Declare
user_id User.userid%type;
ws_name WorkStationUser.wsname%type;
Cursor WSUSER is select * from WorkStationUser;
user_name WorkStationUser.username%type;
Begin
Open WSUSER;
Loop
Fetch WSUSER into user_name, ws_name;
select userid into user_id from USER where username=user_name;
select wsname into ws_name from WORKSTATIONUSER where username=user_name;
update WORKSTATION set userid=user_id whrer wsname=ws_name;
EXIT WHEN WSUSER%notfound;
END LOOP;
close WSUSER;
END;