Se você deseja atualizar todas as linhas no
data tabela, você pode fazer algo assim:UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
NOTAS:
Se houver várias linhas no
node com o mesmo valor para title , que corresponde a um name em data , é indeterminado qual dessas linhas o valor de nid será atribuído de. Se houver valores de
name nos data tabela que não são encontradas no node tabela (no title coluna), então um valor NULL será atribuído ao id coluna. Alguns ajustes na consulta podem modificar esse comportamento.
É possível fazer isso usando uma subconsulta, mas eu usaria apenas uma operação de junção. Eu acho que você poderia usar uma subconsulta correlacionada, assim:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)