|
|
|
|
|
для: Trianon
(09.12.2008 в 15:29)
| | Все, проблема решена.
Использовал:
SELECT `post`.`ip` AS `ip`,
MAX(`users`.`name`) AS `name`,
COUNT(*) AS `count` FROM `post` LEFT JOIN `users`
ON `post`.`ip` = `users`.`ip` GROUP BY `ip`;
|
Таблицу из 86497 записей прощитал за 4 секунды.!
Trianon, благодарю за предоставленное решение. | |
|
|
|
|
|
|
|
для: Dr Lines
(09.12.2008 в 15:23)
| | >Да, у каждой из таблиц есть поле индекс с авто инерементом (`number`), я его тут не описывал.
Вы запрашиваете отбор строк по полю ip . И (непонятно зачем) группировку по name. При чем тут number?
>Надо чтобы запрос вывел все результаты, а у кого найдет имя - и имя вывел тоже.
LEFT JOIN | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2008 в 14:53)
| | Да, у каждой из таблиц есть поле индекс с авто инерементом (`number`), я его тут не описывал.
Что на счет вашего запроса, то получается он выводит только те IP адреса, для которых были найдены имена из второй таблицы. А остальные IP он не выводит.
Надо чтобы запрос вывел все результаты, а у кого найдет имя - и имя вывел тоже. | |
|
|
|
|
|
|
|
для: Dr Lines
(09.12.2008 в 13:47)
| | последний запрос делает совершенно не то, что мой.
Впрочем дело Ваше.
индексы на полях ip с и name cтоят? | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2008 в 13:07)
| | Мде, упростить - упростили, а на скорость выполнения это никак не повлияло. (больше 90 секунд выполняет при таблице с 80ю тысячами записями.)
Видимо надо свеси всё до 1го запроса. Тобишь и DISTINCT(`ip`) и все остальное. Буду ломать голову дальше..... | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2008 в 13:07)
| | Вобщем поковырялся и сделал рабочий вариант:
SELECT `users`.`ip` AS `ip`, `users`.`name` AS `name`,
COUNT(*) AS `count`
FROM `post` JOIN `users`
WHERE `post`.`ip` ='172.16.70.11'
AND `post`.`ip` = `users`.`ip`
GROUP BY `users`.`name` ASC ;
|
| |
|
|
|
|
|
|
|
для: Dr Lines
(09.12.2008 в 12:51)
| | проверяйте. У меня этот запрос выполняется нормально. | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2008 в 12:18)
| | Я сказал локальной сети, а не интернета.
А подменить IP на чужой в ней не получится (даже если сменить mac-адрес), уж так она устроена.
Вобщем это не касается данного вопроса. Так что забудем.
Да, кстати ваш код выдает ошибку здесь:
MAX(users.name)
#1054 - Unknown column 'users.name' in 'field list'
хотя таблица users существует и столбец с заголовком name у неё тоже присутствует. | |
|
|
|
|
|
|
|
для: Dr Lines
(09.12.2008 в 12:07)
| | у кого у всех? ))) | |
|
|
|
|
|
|
|
для: Valick
(09.12.2008 в 11:17)
| | Этот код расчитан на работу в локальной сети, в которй у всех уникальные IP адреса. | |
|
|
|
|