У меня есть таблица, которая помогает мне отслеживать время задержки между моими рабами и мастером. Мой вопрос заключается в том, как я могу создать оператор выбора, который:
1. дает мне последние значения задержки, не повторяя (или пропуская) ip-адреса
2. не нужно обновлять, если я добавляю дополнительные серверы или как серверы не реагируютЗапрос на выбор вложенных запросов MySQL
Цель этого запроса - показать мне, какие серверы доступны для работы, и дать мне приблизительную оценку того, как сильно они работают. Серверы, которые не работают, не должны появляться в результатах. Я запускаю скрипт для оценки времени задержки как CLI каждую минуту, поэтому, если бы я мог ограничить возможные записи, возвращаемые в последнюю минуту и полтора, это должно быть достаточно хорошо, чтобы сказать, какие серверы были в последний раз, когда они были запрос.
Таблица выглядит следующим образом (колонны переименованы, чтобы защитить невиновных):
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
ip VARCHAR(20) NOT NULL ,
sent TIMESTAMP NOT NULL ,
delay DECIMAL (7,4) NOT NULL ,
status VARCHAR(100) NOT NULL ,
execution_time` DECIMAL (7,4)NOT NULL ,
deleted` TINYINT NOT NULL ,
Любая помощь будет оценена.
Ну, это просто доказывает, что мне еще многое предстоит узнать, учитывая, что я даже не знал, что это возможно ... мой запрос получился следующим: Задержка SELECT, ip FROM status, (SELECT id , max (отправлено) FROM status group by ip) innertable WHERE innertable.id = status.id Это дает мне больше возможностей для google ... спасибо. –
Извините, я подумал, что это было правильно, но я понял, что это только возвращает мои первые две записи. –
Внутренний запрос (выберите id, max (отправлено), ip из группы table_name по ip) даст вам ожидаемые результаты. Я предполагаю, что вам нужна одна строка в этом результирующем наборе для каждого IP-адреса. Это верно? – MikeTheReader