Jeśli chcesz zaktualizować wszystkie wiersze w data tabeli, możesz zrobić coś takiego:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
UWAGI:
Jeśli istnieje wiele wierszy w node z taką samą wartością dla title , który pasuje do name w data , nie wiadomo, który z tych wierszy ma wartość nid zostanie przydzielony od.
Jeśli istnieją wartości name w data tabela, której nie ma w node tabela (w title kolumna), wówczas wartość NULL zostanie przypisana do id kolumna.
Niektóre poprawki w zapytaniu mogą zmienić to zachowanie.
Można to osiągnąć za pomocą podzapytania, ale użyłbym po prostu operacji sprzężenia. Myślę, że możesz użyć skorelowanego podzapytania, takiego jak to:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)