Musíte seskupit sloupec infection
a (ip
&ipc
) jinak je připojte pomocí dílčího dotazu, jako je tento:
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
Zobrazit tento SQLFiddle
Poznámka: Myslím, že váš požadovaný výstup je nesprávný, protože:
- V
Table3
neexistuje žádnáinfection
proip=6
ale je to ve vašem výstupu infection
other
ve vašem výstupu chybí (místo toho je zdemalware
)