Se vuoi aggiornare tutte le righe nei data tabella, puoi fare qualcosa del genere:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
NOTE:
Se sono presenti più righe in node con lo stesso valore per title , che corrisponde a un name in data , è indeterminato quale di queste righe ha il valore di nid verrà assegnato da.
Se sono presenti valori di name nei data tabella che non si trova nel node tabella (nel title colonna), quindi verrà assegnato un valore NULL a id colonna.
Alcune modifiche alla query possono modificare questo comportamento.
È possibile farlo usando una sottoquery, ma userei semplicemente un'operazione di join. Penso che potresti usare una sottoquery correlata, come questa:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)