Sie müssen die Spalte infection
gruppieren und (ip
&ipc
) anders, dann verbinden Sie sie mit einer Unterabfrage wie dieser:
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
Siehe dieses SQLFiddle
Hinweis: Ich denke, Ihre gewünschte Ausgabe ist falsch, weil:
- In
Table3
es liegt keineinfection
vor fürip=6
aber es ist in Ihrer Ausgabe infection
other
in Ihrer Ausgabe fehlt (stattdessen gibt esmalware
)