У меня есть две таблицы Service
и Status
. Сервиз держит только name
и id
SQL Выбор из двух таблиц с внутренним соединением и пределом
| id | name |
|----|-------|
| 1 | Test1 |
| 2 | Test2 |
И таблица состояния, как этот
| id | status | service_id | timestamp |
|----|--------|------------|---------------------------|
| 1 | OK | 1 | October, 15 2015 09:03:07 |
| 2 | OK | 1 | October, 15 2015 09:08:07 |
| 3 | OK | 2 | October, 15 2015 10:05:23 |
| 4 | OK | 2 | October, 15 2015 10:15:23 |
Я хочу, чтобы получить данные, как этот
| id | name | status | timestamp |
|----|-------|--------|---------------------------|
| 1 | Test1 | OK | October, 15 2015 09:08:07 |
| 2 | Test2 | OK | October, 15 2015 10:15:23 |
последнее состояние с служебные данные. Я попытался это заявление
SELECT ser.id, ser.name, a.status, a.timestamp
from Service ser
inner join (select * from status
order by Status.timestamp
DESC limit 1) as a
on a.service_id = ser.id
Но я только получаю
| id | name | status | timestamp |
|----|-------|--------|---------------------------|
| 2 | Test2 | OK | October, 15 2015 10:15:23 |
Как я могу изменить заявление, чтобы получить то, что я хочу?
Для тестирования SQL Fiddle
Добавлены 'mysql' тега на основе СУБД, используемой в SQLFiddle –
Вы хотите последний статус для каждой службы? – jarlh
@jarlh да это то, что я хочу – ScreamingTree