我有table_1
看起来像这样
NameId SelectedName
Null A
Null C
Null F
NameId
是FOREIGN KEY
REFERENCES table_2 (Id)
看起来像这样的table_2
Id Name
1 A
2 B
3 C
4 D
5 E
6 F
我想在NameId
中填入与Id
相关联的所有Name
个数字,例如,最终结果将为:
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`;
哪个不起作用。不知道如何去做这个或如何使用以前选择的列和关系来获得我想要在这里做的...
答案 0 :(得分:2)
UPDATE table1
INNER JOIN table2
ON table1.SelectedName= table2.Name
SET table1.NameId = table2.ID
答案 1 :(得分:0)
UPDATE Table1 a INNER JOIN Table2 b ON a.SelectedName = b.Name SET a.NameId = b.ID
答案 2 :(得分:0)
首先使用table_1.NameId
table_2.Id
值
UPDATE table_1 INNER JOIN table_2 ON table_1.SelectedName= table_2.Name
SET table_1.NameId= table_2.Id
并从table_1
SELECT NameId, SelectedName
FROM table_1
WHERE SelectedName IN (SELECT Name FROM table_2);