मेरी साइट में user_id और Customer_id वाले उपयोगकर्ता हैं। डिफ़ॉल्ट सदस्यता स्थिति लंबित है. मैं अन्य 2 तालिकाओं में विवरण की जांच करके सदस्यता स्थिति को सक्रिय में बदलने के लिए एक प्रश्न चाहता हूं। यदि उपयोगकर्ताओं ने सदस्यता योजना खरीदी है, तो उनकी स्थिति को सक्रिय में बदलें।
चरण 1- मैं "सदस्यता" तालिका से लंबित स्थिति वाले सभी उपयोगकर्ताओं का चयन करना चाहता हूं।
table name: membership
+---------+---------+
| user_id | status |
+---------+---------+
| 1 | pending |
| 2 | active |
| 3 | pending |
| 4 | pending |
| 5 | active |
+---------+--------+
चरण 2- चरण 1 से उपयोगकर्ताओं का ग्राहक_आईडी चुनें।
table name: Customers
+---------+--------------+
| user_id | Customer_id |
+---------+--------------+
| 1 | 17 |
| 2 | 18 |
| 3 | 21 |
| 4 | 25 |
| 5 | 29 |
+---------+--------------+
चरण 3- जांचें कि चरण 2 से चयनित ग्राहकों ने product_id 92 का आदेश दिया है या नहीं। यदि हां, तो "सदस्यता" तालिका में स्थिति को लंबित से सक्रिय में बदलें।
table name: orders
+-------------+------------+
| Customer_id | Product_id |
+-------------+------------+
| 21 | 85 |
| 25 | 92 |
| 29 | 99 |
+-------------+------------+
अंतिम परिणाम इस तरह दिखना चाहिए
table name: membership
+---------+---------+
| user_id | status |
+---------+---------+
| 1 | pending |
| 2 | active |
| 3 | pending |
| 4 | active |
| 5 | active |
+---------+--------+
1 उत्तर
आप सिंटैक्स में शामिल होने के साथ अपडेट का उपयोग कर सकते हैं:
update membership m
join Customers c on m.user_id = c.user_id
join orders o on c.Customer_id = o.Customer_id and o.Product_id = 92
set m.status = 'active'
संबंधित सवाल
नए सवाल
mysql
MySQL एक फ्री, ओपन सोर्स रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है जो स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) का उपयोग करता है। इस टैग को अन्य DBs जैसे SQL Server, SQLite आदि के लिए उपयोग न करें। वे विभिन्न DB हैं जो सभी डेटा का प्रबंधन करने के लिए SQL की अपनी बोलियों का उपयोग करते हैं।