问题描述
||
表A有几列,包括
FirstName
和LastName
表B具有不同的列,包括FirstName
,LastName
和EmployeeID
我在表A中添加了EmployeeID
。现在,我要使用名字和姓氏从表B \'6'中填充表A \'6'。(目前,没有人使用相同的名字-这张桌子的设计很奇怪)
我尝试了一些事情,但我一直回到
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
语句时,我不知道如何使用此语法,或者这是否是正确的方法。
解决方法
听起来您在TableA中已经有要更新的数据。在这种情况下,您需要使用“ 10”语句。这是一个例子:
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)
, 问题:名和姓是否保证唯一?
另外,这需要进行更新。
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)