我需要从表中选择employee_id
select emp_id
from employee emp, temp_data td where lower(td.supervisor_name) like lower(emp.last_name||emp.firstname)
并将其插入同一个表中的字段
update emp set emp.supervisor_id = **The value returned from the previous query**
from employee as emp
Inner join temp_table as td
on td.emp_id = emp.emp_id
有什么办法可以实现吗?问题是我在更新语句中设置它时指的是同一个表中的另一个字段。如果还有其他路由我可以告诉我...我在Informix中这样做。
答案 0 :(得分:0)
我认为你需要检查你的数据 检查后完成
表:temp_data表有以下数据
supervisor_name
------------------------------
kaushal
abc
solanki
def
表:员工表具有以下值
firstname last_name
------------------------------
ajay jadeja
sachin solanki
kaushal kumar
manish galav
1
select supervisor_name from temp_data
select firstname from employee
注意结果
1条记录名为kaushal,匹配。所以你需要更新kaushal的ID
2
select supervisor_name from temp_data
select last_name from employee
1条名为solanki的记录匹配。所以你需要更新solanki的ID
查看结果
注意您需要更新多少行(此处为2)
首先尝试将您的选择查询放入更新查询中 然后你说它给错误..
然后试试这个:
修改了您的选择查询,如下所示,并将其放入更新查询中。
select emp_id
from employee emp, temp_data td
where
( lower(td.supervisor_name) like lower(emp.last_name )
or
lower(td.supervisor_name) like (emp.firstname) )
)
看到结果2行更新与否...... ????????
答案 1 :(得分:0)
尝试此操作也可以成功更新您的数据。
将员工纳入员工身份 使用temp_data作为td ON emp.emp_id = td.emp_id 和(lower(td.supervisor_name)like lower(emp.last_name) 要么 lower(td.supervisor_name)like lower(emp.firstname)) 匹配然后更新设置emp.supervisor_id = emp.emp_id