У меня есть таблица посещений (visit_table), структура:
- ID
- IP_адрес
- отметка времени
и таблица(country_table) с именами стран для диапазонов IP
- ID
- begin_IP (начало диапазона IP)
- end_IP (конец диапазона IP)
- begin_num (числовой эквивалент begin_IP, т.е. INET_ATON (begin_IP)) *
- end_num
- код страны (например, США)
- название страны
(на основе http://www.maxmind.com/app/csv)
Я использую MySQL 5.0.67 и хотел бы написать запрос, чтобы получить количество посещений по стране, что-то вроде:
SELECT country.table.country_name,
count(distinct visit_table.IP_address)
FROM country_table, visit_table
WHERE country_name = (SELECT country_name
FROM country_table
WHERE INET_ATON(visits.IP_address) >= begin_num
AND INET_ATON( visits.IP_Address) <= end_num
LIMIT 0,1 )
GROUP BY country_table.country_name
Я почти уверен, что делаю что-то не так, но не знаю, как это исправить - что-то вроде JOIN или что-то с оператором SELECT или GROUP BY?Любые указатели приветствуются!