Обновление столбца на основе связи с другой таблицей

0

У меня есть 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';

Что не работает. Не знаете, как это сделать или как использовать ранее выбранные столбцы и отношения, чтобы получить то, что я хочу сделать здесь...

Теги:
database

3 ответа

2
Лучший ответ
UPDATE table1
INNER JOIN table2
    ON table1.SelectedName= table2.Name
SET table1.NameId = table2.ID
  • 0
    Говорит SQL syntax error near FROM table1 ...?
  • 0
    то, что вы показываете, это синтаксис MSSQL sql. Это должно быть UPDATE Table1 a INNER JOIN Table2 b ON a.SelectedName = b.Name SET a.NameId = b.ID
Показать ещё 3 комментария
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);
0
UPDATE Table1 a INNER JOIN Table2 b ON a.SelectedName = b.Name SET a.NameId = b.ID

Ещё вопросы

Сообщество Overcoder
Наверх
Меню