Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कैसे जुड़ें कई संबंध तालिका हैं और टाइप करके परिणाम प्राप्त करें

LEFT JOIN का उपयोग करें यह सुनिश्चित करने के लिए कि संबंध तालिकाओं में कोई डेटा नहीं है, फिर भी हम मुख्य तालिका से रिकॉर्ड प्राप्त कर सकते हैं।

संदर्भ:MySQL LEFT JOIN को समझना

समस्याएं :

  • गलत फ़ील्ड नाम :pr.interview_id = i.interview_id , यह pr.interview_id = i.id होना चाहिए क्योंकि हमारे पास interviews . में कोई इंटरव्यू_आईडी फ़ील्ड नहीं है तालिका, यह id होगा फ़ील्ड - आपकी क्वेरी के आधार पर।
  • pr.interview_id = i.id where . में खंड :अगर participant_rating तालिका में दिए गए साक्षात्कार के लिए कोई रिकॉर्ड नहीं है, इससे उस साक्षात्कार को परिणाम सेट से हटा दिया जाएगा। LEFT JOIN का उपयोग करें participant_rating . के लिए टेबल.
  • sr.interview_id = i.id where . में खंड :अगर system_rating तालिका में दिए गए साक्षात्कार के लिए कोई रिकॉर्ड नहीं है, इससे उस साक्षात्कार को परिणाम सेट से हटा दिया जाएगा। LEFT JOIN का उपयोग करें system_rating . के लिए टेबल भी।
  • Usage of AVG काम करता है लेकिन अन्य समुच्चय कार्यों जैसे SUM, COUNT . के लिए काम नहीं करेगा .. क्योंकि अगर हमारे पास एक से कई रिश्ते हैं तो शामिल होने से एक ही पंक्ति के लिए कई रिकॉर्ड होंगे।

समाधान :

SELECT 
    i.id AS interview_id,
    i.candidate,  
    AVG(sr.rating) AS system_rating, 
    AVG(CASE WHEN pr.rater_type = 'Candidate' THEN pr.rating END) AS candidate_rating, 
    AVG(CASE WHEN pr.rater_type = 'Recruiter' THEN pr.rating END) AS recruiter_rating
FROM interviews i
LEFT JOIN system_rating sr ON sr.interview_id = i.id
LEFT JOIN participant_rating pr ON pr.interview_id = i.id
-- WHERE i.id IN (1, 2, 3) -- use whenever required
GROUP BY i.id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अद्यतन SQL क्वेरी में ऑफ़सेट या ऑफ़सेट को सीमित करें

  2. MySQL क्वेरी पैरामीटर की संख्या निष्पादित करने के लिए पारित तर्कों से मेल खाती है, लेकिन पायथन सभी तर्कों को परिवर्तित नहीं करता है

  3. लारवेल के वाक्पटु का उपयोग करके JSON कॉलम में खोजें

  4. जब कई फ़ंक्शन क्वेरीज़ चला रहे हों तो डेटाबेस से कनेक्ट करने का कुशल तरीका

  5. डेटाबेस के एक ही कॉलम में पंक्तियों के एकाधिक इनपुट कैसे सहेजते हैं?