Als u alle rijen in de data . wilt bijwerken tabel, kunt u zoiets als dit doen:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
OPMERKINGEN:
Als er meerdere rijen zijn in node met dezelfde waarde voor title , die overeenkomt met een name in data , het is onbepaald welke van die rijen de waarde van nid wordt toegewezen vanaf.
Als er waarden zijn van name in de data tabel die niet worden gevonden in het node tabel (in de title kolom), dan wordt een NULL-waarde toegewezen aan de id kolom.
Sommige aanpassingen aan de query kunnen dit gedrag wijzigen.
Het is mogelijk om dit te bereiken met behulp van een subquery, maar ik zou gewoon een join-bewerking gebruiken. Ik denk dat je een gecorreleerde subquery zou kunnen gebruiken, zoals deze:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)