Wenn Sie alle Zeilen in den data aktualisieren möchten Tabelle können Sie etwa so vorgehen:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
HINWEISE:
Wenn es mehrere Zeilen in node gibt mit demselben Wert für title , der einem name entspricht in data , ist es unbestimmt, welche dieser Zeilen den Wert von nid hat wird zugewiesen von.
Wenn es Werte von name gibt in den data Tabelle, die nicht im node gefunden werden Tabelle (im title Spalte), dann wird der id ein NULL-Wert zugewiesen Spalte.
Einige Optimierungen an der Abfrage können dieses Verhalten ändern.
Es ist möglich, dies mit einer Unterabfrage zu erreichen, aber ich würde nur eine Join-Operation verwenden. Ich denke, Sie könnten eine korrelierte Unterabfrage wie diese verwenden:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)