मेरा मतलब है कि मेरे पास एक टेबल है
table1
idbook idauthor title magazine
1 NULL title_1 magazine_1
2 2 title_2 magazine_2
और दुसरी
table2
idauthor name surname
1 name_1 surname_1
2 name_2 surname_2
और मैं एक प्रश्न लिखना चाहता हूं जो तालिका 1 को अद्यतन करता है और शीर्षक 1 के लिए 'idauthor' मान सेट करता है, जैसा कि name_1 के साथ तालिका 2 में 'idauthor' के समान है।
यह कैसा दिखेगा?या यह संभव नहीं है?
कैसे
2 जवाब
दरअसल, सामान्य कॉलम idauthor है, इसे एक विदेशी कुंजी के रूप में माना जा सकता है। लेकिन चूंकि तालिका 2 के साथ तालिका 1 की पंक्ति का मिलान करने का कोई तरीका नहीं है, इसलिए आपको एक गंदा अद्यतन विवरण करना होगा, जो केवल ऊपर दिए गए उदाहरण के लिए काम करेगा, न कि अन्य परिदृश्यों के लिए।
UPDATE table1 SET idauthor = (SELECT idauthor FROM table2 WHERE name LIKE "name_1" AND surname LIKE "surname_1") WHERE idauthor ISNULL;
यह क्वेरी उन सभी तालिका 1 की पंक्तियों को अपडेट करेगी जिनका idauthor कॉलम में NULL मान है, और इसे उस पर सेट करें जिसे आप name_1 और उपनाम_1 के साथ खोज रहे हैं।
मुझे table1
और table2
के बीच मेल खाने वाला कॉलम नहीं दिख रहा है, मुझे लगता है कि इस उदाहरण में कुछ कमी है। लेकिन मैं यह मानकर लिखूंगा कि table2
में एक कॉलम idbook
है जो table1
से मेल खाता है।
update table1, table2
set table1.idauthor = table2.idauthor
where table1.idbook = table2.idbook
यदि आपके पास मेल खाने वाला कॉलम (या कॉलम) नहीं है, तो नहीं, आप अपडेट नहीं कर सकते।
संबंधित सवाल
नए सवाल
sql-server
Microsoft SQL सर्वर एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। कॉम्पैक्ट, एक्सप्रेस, एज़्योर, फास्ट-ट्रैक, एपीएस (पूर्व में पीडीडब्ल्यू) और एज़्योर SQL डीडब्ल्यू सहित सभी SQL सर्वर संस्करणों के लिए इस टैग का उपयोग करें। अन्य प्रकार के DBMS (MySQL, PostgreSQL, Oracle, आदि) के लिए इस टैग का उपयोग न करें। सॉफ़्टवेयर और मोबाइल विकास के मुद्दों के लिए इस टैग का उपयोग न करें, जब तक कि यह सीधे डेटाबेस से संबंधित न हो।