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
)