简体   繁体   English

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

[英]MySQL: Trying to populate data into one column from another table

Table A has several columns, including FirstName and LastName Table B has different columns, including FirstName , LastName and EmployeeID表 A 有几列,包括FirstNameLastName表 B 有不同的列,包括FirstNameLastNameEmployeeID

I added EmployeeID into Table A. I now want to populate Table A's Employee ID 's from Table B's Employee ID 's, using the first and last name (we currently have no one working with the same name - the design of this table was weird like that)我将EmployeeID添加到表 A 中。我现在想从表 B 的Employee ID中填充表 A 的Employee ID ,使用名字和姓氏(我们目前没有人使用相同的名字 - 这个表的设计是这么奇怪)

I've attempted a few things, but I keep coming back to我尝试了一些事情,但我不断回到

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

But I keep getting a syntax error - MySQL server version for the right syntax to use near A. I don't know how to use this syntax when dealing with Insert statements, I think, or if this is the right way at all.但是我不断收到语法错误 - MySQL 服务器版本,用于在 A 附近使用正确的语法。我认为,在处理Insert语句时,我不知道如何使用这种语法,或者这是否是正确的方法。

It sounds like you already have data in TableA that you want to update.听起来您已经在 TableA 中有要更新的数据。 If that is the case, you need to use an UPDATE statement.如果是这种情况,您需要使用UPDATE语句。 Here's an example:这是一个例子:

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)

Question: Are first and last name guaranteed to be unique?问题:名字和姓氏是否保证是唯一的?

Also, this needs to be an update.此外,这需要更新。

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM