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

MySQL GROUP BY विभिन्न तालिकाओं से कई कॉलम

आपकी क्वेरी

SELECT sum(d.data) as total
FROM data d, ta, tb
WHERE
(d.type LIKE "type_a" AND d.type_id = ta.id) 
OR 
(d.type LIKE "type_b" AND d.type_id = tb.id) 
GROUP BY a.customer_id, b.customer_id;

मान लें कि d में केवल एक रिकॉर्ड है, और यह type_a है। टा और टीबी प्रत्येक में दो रिकॉर्ड हैं। d में रिकॉर्ड d.type_id=ta.id पर टा के किसी एक रिकॉर्ड से मेल खाता है . इसलिए, (d x ta) का वह संयोजन किसी भी tb रिकॉर्ड को अंतिम परिणाम में रहने देता है। आपको एक अनपेक्षित कार्टेशियन उत्पाद मिलता है।

SELECT x.customer_id, SUM(data) total
FROM
(
    SELECT ta.customer_id, d.data
    FROM data d JOIN ta
       ON (d.type LIKE "type_a" AND d.type_id = ta.id) 
    UNION ALL
    SELECT tb.customer_id, d.data
    FROM data d JOIN tb
       ON (d.type LIKE "type_b" AND d.type_id = tb.id) 
) X
GROUP BY x.customer_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. php mysql में मैसेजिंग सिस्टम

  2. एक वस्तु json में दो प्रश्न mysql

  3. एसक्यूएल में सबस्ट्रिंग खोज को लागू करने का सबसे अच्छा तरीका क्या है?

  4. html ड्रिल डाउन ड्रॉप डाउन चयनित मान MYSQL में सम्मिलित नहीं है

  5. एक mysql डीबी में क्रमबद्ध डेटा स्टोर करने के लिए किस कॉलम प्रकार का उपयोग किया जाना चाहिए?