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
)