Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 基于与另一个表的关系更新列_Mysql_Sql_Database_Postgresql - Fatal编程技术网

Mysql 基于与另一个表的关系更新列

Mysql 基于与另一个表的关系更新列,mysql,sql,database,postgresql,Mysql,Sql,Database,Postgresql,我有一个表1,看起来像这样 NameId SelectedName Null A Null C Null F Id Name 1 A 2 B 3 C 4 D 5 E 6 F NameId是一个外键

我有一个
表1
,看起来像这样

NameId       SelectedName 
Null              A
Null              C
Null              F
Id              Name 
1                A
2                B
3                C
4                D
5                E
6                F
NameId
是一个
外键
,它引用了表2(Id)

还有一个
表2
,看起来像这样

NameId       SelectedName 
Null              A
Null              C
Null              F
Id              Name 
1                A
2                B
3                C
4                D
5                E
6                F
我想用与同一
名称
相关联的所有
Id
编号填充
名称Id
,因此,例如,最终结果将是:

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`;

这不管用。不确定如何执行此操作,或者如何使用以前选择的列和关系来完成此处的操作…

首先使用
表2.Id
更新
表1.NameId

UPDATE table1
INNER JOIN table2
    ON table1.SelectedName= table2.Name
SET table1.NameId = table2.ID
UPDATE table_1 INNER JOIN table_2 ON table_1.SelectedName= table_2.Name 
SET table_1.NameId= table_2.Id
并从
表_1

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

首先用
table_2.Id

UPDATE table_1 INNER JOIN table_2 ON table_1.SelectedName= table_2.Name 
SET table_1.NameId= table_2.Id
并从
表_1

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

您所展示的是MSSQL语法。应该是
更新表1 a内部联接表2 b ON a.SelectedName=b.Name SET a.NameId=b.ID
是的,很抱歉我忘了检查标记。请花点时间格式化您的查询+1。您显示的是MSSQL语法。应该是
更新表1 a内部联接表2 b ON a.SelectedName=b.Name SET a.NameId=b.ID
是的,很抱歉我忘了检查标记。请花点时间格式化您的查询+1。