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
)