"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > एक ही MySQL क्वेरी में एकाधिक रिकॉर्ड और उनके संबंधित डेटा कैसे प्राप्त करें?

एक ही MySQL क्वेरी में एकाधिक रिकॉर्ड और उनके संबंधित डेटा कैसे प्राप्त करें?

2024-11-03 को प्रकाशित
ब्राउज़ करें:555

 How to Fetch Multiple Records and Their Related Data in a Single MySQL Query?

एक प्रतिक्रिया में एकाधिक प्रतिक्रिया डेटा लौटाना

आपके PHP कोड में, आपके पास एक क्वेरी है जो डेटाबेस तालिका से डेटा की कई पंक्तियों को लाती है . हालाँकि, आपको कई प्रतिक्रियाएँ मिल रही हैं, और आप उन्हें कई रिकॉर्ड के साथ एक ही प्रतिक्रिया में मर्ज करना चाहते हैं।

इसे प्राप्त करने के लिए, आपको आवश्यक तालिकाओं पर बाईं ओर जुड़ने के लिए अपनी क्वेरी को संशोधित करने की आवश्यकता है। छात्र डेटा लाने के बजाय, आप विषय डेटा लाएंगे और बाएं जोड़ का उपयोग करके प्रासंगिक छात्र जानकारी शामिल करेंगे। यह आपको एक ही प्रतिक्रिया में एकाधिक तालिकाओं से संबंधित डेटा शामिल करने की अनुमति देगा।

यहां अद्यतन क्वेरी का एक उदाहरण दिया गया है:

$sql = 'SELECT 
                subjects.userid,
                users.name AS username,
                (
                    SELECT id 
                    FROM tbsubjects 
                    WHERE userid = subjects.userid 
                    ORDER BY id ASC 
                    LIMIT 1
                ) AS subjectsid,
                (
                    SELECT name 
                    FROM tbsubjects 
                    WHERE 
                        userid = subjects.userid 
                        ORDER BY time DESC
                        LIMIT 1
                ) AS subjectname,
                (
                    SELECT IFNULL(SUM(points), 0) 
                    FROM tbsubjects 
                    WHERE 
                        userid = subjects.userid 
                        AND month = DATE_FORMAT(NOW(), "%c")
                ) AS activepts,
                IFNULL(SUM(subjects.points), 0) AS totalpts,
                (
                    SELECT IFNULL(SUM(points), 0) 
                    FROM tbsubjects 
                    WHERE 
                        userid = subjects.userid 
                        AND semester = 1
                ) AS sem1,
                (
                    SELECT IFNULL(SUM(points), 0) 
                    FROM tbsubjects 
                    WHERE 
                        userid = subjects.userid 
                        AND semester = 2
                ) AS sem2,
                (
                    SELECT IFNULL(SUM(points), 0) 
                    FROM tbsubjects 
                    WHERE 
                        userid = subjects.userid 
                        AND semester = 3
                ) AS sem3 
            FROM 
                tbsubjects AS subjects 
                LEFT JOIN tbusers AS users ON users.id = subjects.userid 
            WHERE subjects.userid = :userid GROUP BY subjects.userid ORDER BY subjects.time DESC';

इस क्वेरी में:

  • FROM क्लॉज अब tbsubjects AS विषयों से शुरू होता है जिन्हें लाना है विषय डेटा। , प्रत्येक विषय रिकॉर्ड के लिए sem1, sem2, और sem3 मान।
  • इस क्वेरी को निष्पादित करने के बाद, आपको एक ही प्रतिक्रिया मिलेगी जिसमें कई विषय रिकॉर्ड होंगे, जिनमें से प्रत्येक में आवश्यक छात्र जानकारी और परिकलित मान होंगे।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3