I have a query (thanks to this list) that uses a join to add country
information to an IP. It looks like this:

SELECT COUNT(signature) AS count, INET_NTOA(src_ip), map1.cc as
src_cc, INET_NTOA(dst_ip), map2.cc as dst_cc
FROM event LEFT JOIN mappings AS map1 ON event.src_ip = map1.ip LEFT
JOIN mappings AS map2 ON event.dst_ip = map2.ip
WHERE timestamp BETWEEN '2011-01-29 00:00:00' AND '2011-01-30 00:00:00'
GROUP BY src_ip, src_cc, dst_ip, dst_cc
ORDER BY src_cc, dst_cc ASC;

This would return something like this:

 +-------+-------------------+--------+-------------------+--------+
| count | INET_NTOA(src_ip) | src_cc | INET_NTOA(dst_ip) | dst_cc |
+-------+-------------------+--------+-------------------+--------+
|     8 | 10.0.0.8       | NULL   | 61.55.142.129     | CN     |
|     1 | 210.52.216.92     | CN     | 10.0.0.2         | NULL   |
|     1 | 121.33.205.235    | CN     | 172.16.0.6        | NULL   |
|   239 | 210.52.216.92     | CN     | 10.0.0.2        | NULL   |
|     2 | 121.33.205.235    | CN     | 172.16.0.15       | NULL   |
|     4 | 121.33.205.235    | CN     | 10.0.0.1        | NULL   |
|    39 | 210.52.216.92     | CN     | 172.16.0.15       | NULL   |
|     1 | 121.33.205.235    | CN     | 172.16.0.14       | NULL   |
+-------+-------------------+--------+-------------------+--------+

All I am interested in is the event count for each country, in this case:

295 CN
... Other countries..

I can do this in code, more work of course, but I am just curious if I
can pull it off with a single query.

Thanks!
-- 
Paul Halliday
http://www.pintumbler.org

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to