我在data_entry表中添加了一个新字段,并希望在其上插入employee_write_task表的emp_id
基于employee_write_task.task_id = data_entry.id and employee_write_task.empType_id = 1.
的值,这里1是data_entry的任务类型
我尝试过这样的事情:
INSERT INTO data_entry (emp_id)
SELECT emp_id FROM employee_write_task
WHERE employee_write_task.task_id = data_entry.id AND employee_write_task.empType_id = 1
但它似乎不起作用。我错过了什么?
我附上了表格及其下面的属性以供参考。
答案 0 :(得分:2)
UPDATE data_entry
LEFT JOIN employee_write_task
ON data_entry.id = employee_write_task.task_id
SET data_entry.emp_id = employee_write_task.emp_id
WHERE employee_write_task.empType_id = 1;
答案 1 :(得分:0)
我认为您应该使用update语句而不是insert。尝试如下。
UPDATE data_entry set emp_id =
(SELECT emp_id FROM employee_write_task
WHERE employee_write_task.task_id = data_entry.id AND employee_write_task.empType_id = 1)
如果以下选择检索的值超过1,则此查询可能会失败。
SELECT emp_id FROM employee_write_task
WHERE employee_write_task.task_id = data_entry.id
AND employee_write_task.empType_id = 1
在这种情况下,您应该添加更多条件来唯一地对记录进行术语。
问候。
答案 2 :(得分:0)
update data_entry d,employee_write_task e
set d.emp_id=e.emp_id
where d.id=e.task_id AND e.empType_id = 1;