Si vous souhaitez mettre à jour toutes les lignes dans les data table, vous pouvez faire quelque chose comme ceci :
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
REMARQUES :
S'il y a plusieurs lignes dans node avec la même valeur pour title , qui correspond à un name dans data , il est indéterminé laquelle de ces lignes la valeur de nid sera attribué à partir de.
S'il y a des valeurs de name dans les data table qui ne se trouvent pas dans le node tableau (dans le title colonne), alors une valeur NULL sera attribuée à l'id colonne.
Certaines modifications apportées à la requête peuvent modifier ce comportement.
Il est possible d'accomplir cela en utilisant une sous-requête, mais j'utiliserais simplement une opération de jointure. Je pense que vous pourriez utiliser une sous-requête corrélée, comme celle-ci :
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)