मेरी साइट में 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  |
+---------+--------+
0
Waqas 5 अक्टूबर 2021, 10:58

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'
0
Sergei 5 अक्टूबर 2021, 11:03