लेफ्ट जॉइन में केवल पहली पंक्ति को पुनः प्राप्त करना
एसक्यूएल में, लेफ्ट जॉइन ऑपरेशन करने से दाहिनी तालिका से कई पंक्तियाँ प्राप्त हो सकती हैं बायीं तालिका से एक पंक्ति से मिलान किया जा रहा है। कुछ परिदृश्यों में, बाईं तालिका में प्रत्येक पंक्ति के लिए दाईं तालिका से केवल पहली पंक्ति पुनर्प्राप्त करना वांछनीय है।
निम्नलिखित सरलीकृत डेटा संरचना पर विचार करें:
**Feeds** id | title | content ---------------------- 1 | Feed 1 | ... **Artists** artist_id | artist_name ----------------------- 1 | Artist 1 2 | Artist 2 **feeds_artists** rel_id | artist_id | feed_id ---------------------------- 1 | 1 | 1 2 | 2 | 1
फ़ीड लेखों को पुनः प्राप्त करने और प्रत्येक फ़ीड में केवल पहले कलाकार को जोड़ने के लिए, निम्नलिखित सिंटैक्स का प्रयास किया जा सकता है:
SELECT * FROM feeds LEFT JOIN feeds_artists ON wp_feeds.id = ( SELECT feeds_artists.feed_id FROM feeds_artists WHERE feeds_artists.feed_id = feeds.id LIMIT 1 ) WHERE feeds.id = '13815'
हालाँकि, यह दृष्टिकोण वांछित परिणाम नहीं दे सकता है। लक्ष्य प्राप्त करने के लिए, निम्नलिखित विकल्प पर विचार करें:
SELECT * FROM feeds f LEFT JOIN artists a ON a.artist_id = ( SELECT MIN(fa.artist_id) a_id FROM feeds_artists fa WHERE fa.feed_id = f.id )
यह संशोधन न्यूनतम आईडी वाले कलाकार को निर्धारित करने के लिए MIN() फ़ंक्शन का उपयोग करता है, यह मानते हुए कि कलाकार आईडी समय के साथ बढ़ती है। परिणामस्वरूप, लेफ्ट जॉइन केवल प्रत्येक फ़ीड से जुड़े पहले कलाकार को पुनः प्राप्त करेगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3