关于sql:MySQL:如何使用基于select from another table的值填充现有表的新列

MySQL: How to fill new column of existing table with value based on select from another table

我对SQL trully的了解不是很好,无法执行我想要的。
我有2张桌子:
一个是包含许多列的长数据表,其中一个是TypeName,最近我在表TypeID中添加了新列(它是空的atm)。 喜欢:

1
2
3
4
5
6
7
8
9
column1   column2   column3   TypeName    TypeID
------------------------------------------------
...       ...       ...       name1         NULL
...       ...       ...       name2         NULL
...       ...       ...       name1         NULL
...       ...       ...       name3         NULL
...       ...       ...       name1         NULL
...       ...       ...       name4         NULL
...       ...       ...       name5         NULL

第二个表我称之为referenceTable。 它将每个可能的TypeName映射到TypeID。 喜欢:

1
2
3
4
5
6
TypeID     TypeName
-------------------
0          name1
1          name2
2          name3
etc...

我想在refference表中的基于数据表的对应值中填充TypeID。
对此有什么疑问?

编辑:
是的我想用正确的值填充TypeID列后从数据表中删除TypeName
当然,我正在寻找同时为整个表执行此操作的查询。


你想更新不插入:

1
2
3
UPDATE table1 t1
INNER JOIN table2 t2 ON t1.typeName = t2.typename
SET t1.typeID = t2.typeID

但是如果你要在两个表上都有重复的值,你真的应该考虑只有一个外键(可能是这个类型ID),并且只在引用表中有名称。