अगर आप data
में सभी पंक्तियों को अपडेट करना चाहते हैं टेबल, आप कुछ इस तरह कर सकते हैं:
UPDATE data
LEFT
JOIN node
ON node.title = data.name
SET data.id = node.nid
नोट:
यदि node
में एक से अधिक पंक्तियाँ हैं title
. के लिए समान मान के साथ , जो एक name
. से मेल खाता है data
में , यह अनिश्चित है कि उनमें से कौन सी पंक्ति nid
. का मान है से सौंपा जाएगा।
अगर name
. के मान हैं data
. में तालिका जो node
. में नहीं पाई जाती है तालिका (title
. में कॉलम), फिर एक NULL मान id
. को असाइन किया जाएगा कॉलम।
क्वेरी में कुछ बदलाव इस व्यवहार को संशोधित कर सकते हैं।
सबक्वायरी का उपयोग करके इसे पूरा करना संभव है, लेकिन मैं सिर्फ एक जॉइन ऑपरेशन का उपयोग करूंगा। मुझे लगता है कि आप इस तरह एक सहसंबद्ध उपश्रेणी का उपयोग कर सकते हैं:
UPDATE data
SET data.id = ( SELECT node.nid
FROM node
WHERE node.title = data.name
ORDER BY node.nid
LIMIT 1
)