Om du vill uppdatera alla rader i data tabell kan du göra något så här:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
ANMÄRKNINGAR:
Om det finns flera rader i node med samma värde för title , som matchar ett name i data , det är obestämt vilken av dessa rader värdet på nid kommer att tilldelas från.
Om det finns värden för name i data tabell som inte finns i node tabell (i title kolumn), kommer ett NULL-värde att tilldelas till id kolumn.
Vissa justeringar av frågan kan ändra detta beteende.
Det är möjligt att åstadkomma detta med en underfråga, men jag skulle bara använda en join-operation. Jag tror att du kan använda en korrelerad underfråga, så här:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)