MySQL:尝试将数据填充到另一个表中的一列中

Ran*_*eis 6 mysql sql merge

表A具有多个列,其中包括FirstNameLastName 表B具有不同的列,包括FirstName,LastNameEmployeeID

我添加EmployeeID到表答:我现在想填充表A的Employee ID"从表B公司的S 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
Run Code Online (Sandbox Code Playgroud)

但我一直得到一个语法错误 - MySQL服务器版本正确的语法在A附近使用.我不知道在处理Insert语句时如何使用这种语法,或者如果这是正确的方法.

dmc*_*dmc 15

听起来您已经在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)
Run Code Online (Sandbox Code Playgroud)