Musisz pogrupować kolumnę infection
i (ip
&ipc
) w inny sposób, a następnie dołącz do nich za pomocą podzapytania w ten sposób:
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
Zobacz ten SQLFiddle
Uwaga: Myślę, że żądany wynik jest nieprawidłowy, ponieważ:
- W
Table3
nie mainfection
dlaip=6
ale to jest w twoim wyniku infection
other
brakuje w wynikach (zamiast tego jestmalware
)