Jika Anda ingin memperbarui semua baris di data
tabel, Anda dapat melakukan sesuatu seperti ini:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
CATATAN:
Jika ada beberapa baris di node
dengan nilai yang sama untuk title
, yang cocok dengan name
dalam data
, tidak dapat ditentukan dari baris mana nilai nid
akan ditugaskan dari.
Jika ada nilai name
di data
tabel yang tidak ditemukan di node
tabel (dalam title
kolom), maka nilai NULL akan diberikan ke id
kolom.
Beberapa penyesuaian pada kueri dapat mengubah perilaku ini.
Dimungkinkan untuk mencapai ini menggunakan subquery, tetapi saya hanya akan menggunakan operasi gabungan. Saya pikir Anda bisa menggunakan subquery yang berkorelasi, seperti ini:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)