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

नेस्टेड प्रश्न दो शर्तों के साथ गिनती पाने के लिए

आपको कॉलम infection . को समूहीकृत करना होगा और (ip &ipc ) अलग तरीके से फिर इस तरह उप-क्वेरी का उपयोग करके उनसे जुड़ें:

SELECT t1.ip, t1.isp, t2.infection, t1.ipc, t1. ispc, t2.incount
FROM
    (SELECT ip, isp, infection, COUNT(ip) as ipc, COUNT(isp) as ispc
    FROM (
       SELECT ip, isp, infection
       FROM tbl1
       UNION ALL
       SELECT ip, isp, infection
       FROM tbl2
       UNION ALL
       SELECT ip, isp, infection
       FROM tbl3
       )x
     GROUP BY ip, isp) t1
JOIN
    (SELECT ip, isp, infection, COUNT(infection) as incount
     FROM (
       SELECT ip, isp, infection
       FROM tbl1
       UNION ALL
       SELECT ip, isp, infection
       FROM tbl2
       UNION ALL
       SELECT ip, isp, infection
       FROM tbl3
       )x
    GROUP BY ip, isp,  infection)t2
ON t1.ip = t2.ip
ORDER BY ip, isp, infection Desc

यह SQLFiddle देखें

नोट: मुझे लगता है कि आपका वांछित आउटपुट गलत है क्योंकि:

  1. Table3में कोई infection नहीं है ip=6 . के लिए लेकिन यह आपके आउटपुट में है
  2. infection other आपके आउटपुट में गायब है (इसके बजाय malware . है )


  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 का उपयोग करके डेटाबेस को क्रमिक रूप से कैसे अपडेट करें?

  2. जेसन डेटा कैसे निकालें और mysql php . में डालें

  3. क्या मुझे वास्तव में mysql_close () करने की ज़रूरत है

  4. मध्य पंक्तियों में एक नई पंक्ति डालने के लिए MySQL सिंटैक्स?

  5. अल्पविराम से अलग की गई सूची में आइटम कैसे गिनें MySQL