Anda perlu mengelompokkan kolom infection
dan (ip
&ipc
) secara berbeda kemudian gabungkan mereka menggunakan sub-kueri seperti ini:
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
Lihat SQLFiddle ini
Catatan: Saya pikir output yang Anda inginkan salah karena:
- Dalam
Table3
tidak adainfection
untukip=6
tapi itu ada di output Anda infection
other
tidak ada dalam output Anda (sebagai gantinya adamalware
)