表A有几列,包括FirstName
和LastName
表B有不同的列,包括FirstName
,LastName
和EmployeeID
我在表A中添加了EmployeeID
。我现在想要使用名字和姓氏填充表A Employee ID
中的表Employee ID
'(我们目前没有一个使用相同名称的工作 - 这个表的设计很奇怪)
我尝试了一些事情,但我一直回到
INSERT INTO TableA (EMPLOYEE_ID) A
SELECT B.EMPLOYEE_ID FROM TableB B
WHERE A.First_name = B.First_name
AND A.Last_name = B.Last_name
但是我一直得到一个语法错误 - MySQL服务器版本用于在A附近使用正确的语法。我想,在处理Insert
语句时,我不知道如何使用这种语法,或者这是正确的方式。
答案 0 :(得分:14)
听起来您已经在TableA中拥有要更新的数据。如果是这种情况,则需要使用UPDATE
语句。这是一个例子:
UPDATE TableA A
SET EMPLOYEE_ID =
(SELECT EMPLOYEE_ID
FROM TableB B
WHERE B.First_name = A.First_name
AND B.Last_name = A.Last_name)
WHERE EXISTS
(SELECT EMPLOYEE_ID
FROM TableB B
WHERE B.First_name = A.First_name
AND B.Last_name = A.Last_name)
答案 1 :(得分:1)
问题:首页和姓氏保证是唯一的吗?
此外,这需要更新。
UPDATE TableA A
SET a.employee_id = (SELECT employee_id FROM TableB WHERE first_name = a.first_name AND last_name = a.last_name)
WHERE EXISTS (SELECT 1 FROM TableB WHERE first_name = a.first_name AND last_name = a.last_name)