Ако искате да актуализирате всички редове в data
таблица, можете да направите нещо подобно:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
БЕЛЕЖКИ:
Ако има няколко реда в node
със същата стойност за title
, което съответства на name
в data
, не е определено кой от тези редове е стойността на nid
ще бъде назначен от.
Ако има стойности на name
в data
таблица, които не са намерени в node
таблица (в title
колона), тогава на id
ще бъде присвоена стойност NULL колона.
Някои промени в заявката могат да променят това поведение.
Възможно е да се постигне това с помощта на подзаявка, но бих използвал просто операция за присъединяване. Мисля, че бихте могли да използвате корелирана подзаявка, като тази:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)