mysql - 根据与另一个表的关系更新列

标签 mysql sql database postgresql

我有一个看起来像这样的 table_1

NameId       SelectedName 
Null              A
Null              C
Null              F

NameIdFOREIGN KEY REFERENCES table_2 (Id)

还有一个看起来像这样的table_2

Id              Name 
1                A
2                B
3                C
4                D
5                E
6                F

我想用与同一 Name 关联的所有 Id 数字填充 NameId,例如,最终结果将是:

NameId       SelectedName 
1                 A
3                 C
6                 F

到目前为止,我只有:

SELECT Id, `Name` FROM table_2 WHERE `Name` IN (SELECT `SelectedName` FROM table_1);

然后我尝试跟进:

UPDATE table_1 SET NameId = Id WHERE SelectedName = `Name`;

这是行不通的。不确定如何去做这件事或如何使用以前选择的列和关系来完成我想在这里完成的事情...

最佳答案

UPDATE table1
INNER JOIN table2
    ON table1.SelectedName= table2.Name
SET table1.NameId = table2.ID

关于mysql - 根据与另一个表的关系更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48920017/

相关文章:

mysql - Woocommerce 在数据库中添加加售

php - 拉拉维尔 : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")

sql - varchar()中的十六进制字符实际上是ascii。需要解码

sql - MySQL "ON DELETE CASCADE"太强大了

php - MySQL 和 PHP : auto connect to DB or to properly way to pass host/db to MySQL methods

mysql - MySQL 中的 group_concat 性能问题

sql - 使用TSQLUNIT进行SQL单元测试: don't you need to duplicate your SQL code?

mysql - SQL - 按销售人员计算订单总数

database - MySql - 计算每天事件的时间戳数据集(时间戳、事件)

PHP:多线程 PHP/Web 服务?