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

SQL पूर्ण बाहरी एकाधिक तालिकाओं के साथ जुड़ें

आपको दो चीजों में से एक करने की आवश्यकता है (और ये दोनों मानते हैं कि Table0 num . के सभी उदाहरण हैं ) -

  1. यदि सभी पंक्तियों को पहले से ही 'पत्ती' तालिका (1 - 4) के लिए जोड़ दिया गया है, तो एक साधारण LEFT JOIN (COALESCE() . के साथ चयन में) पर्याप्त होगा - आपको GROUP BY की भी आवश्यकता नहीं है .

  2. यदि आपको पंक्तियों का सारांश चाहिए, तो आपको उन्हें पहले . जोड़ना होगा शामिल हों, यह देखते हुए कि अन्यथा अलग-अलग तालिकाओं में प्रति संख्या एकाधिक पंक्तियाँ परिणामों को गुणा . करने का कारण बनेंगी .

कुछ इस तरह:

SELECT Table0.num, COALESCE(Table1.qty, 0), COALESCE(Table2.qty, 0), 
                   COALESCE(Table3.qty, 0), COALESCE(Table4.qty, 0)
FROM Table0
LEFT JOIN (SELECT num, SUM(qty1) as qty
           FROM Table1
           GROUP BY num) Table1
ON Table1.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty2) as qty
           FROM Table2
           GROUP BY num) Table2
ON Table2.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty3) as qty
           FROM Table3
           GROUP BY num) Table3
ON Table3.num = Table0.num
LEFT JOIN (SELECT num, SUM(qty4) as qty
           FROM Table4
           GROUP BY num) Table4
ON Table4.num = Table0.num

(काम कर रहा SQLFiddle उदाहरण )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL COUNT () और नल

  2. PDO::FETCH_ASSOC से एक सहयोगी सरणी मान का संदर्भ देना

  3. MySQL:रैंड द्वारा ऑर्डर करने के विकल्प ()

  4. MySQL कनेक्शन को कैसे मारें

  5. सिद्धांत - अगला और पिछला रिकॉर्ड प्राप्त करें