У меня небольшие проблемы с SQL-запросом.Вот почему я надеюсь, что некоторые из вас смогут мне помочь.
У меня есть запрос, который выбирает самую последнюю запись из каждого реляционного идентификатора, но я хочу выбрать самую последнюю, если статус другой.Таблица выглядит следующим образом.
+-----------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| kid_id | int(11) | NO | | NULL | |
| status | varchar(50) | NO | | NULL | |
| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | |
+-----------+-------------+------+-----+-------------------+----------------+
И мой текущий запрос выглядит следующим образом.
SELECT *
FROM (
SELECT *
FROM actions
AS a
WHERE date(timestamp) = curdate()
AND timestamp = (
SELECT max(timestamp)
FROM actions
AS b
WHERE a.kid_id = b.kid_id
)
)
AS c
ORDER BY kid_id
И результат выглядит так:
id kid_id status timestamp
54 1 Kommet 2010-09-15 00:14:51
57 2 Gået 2010-09-15 00:17:58
56 3 Kommet 2010-09-15 00:15:00
Проблемаэто то, где kid_id равно 2 Я хотел бы видеть последнюю запись, где status = "Kommet" ....
Я хочу 2 новейшие записи от каждого ребенка.Первая запись, где status = "Kommet", а вторая запись, где status = "Gået"
Заранее большое спасибо за вашу помощь ... Это действительно ценится:)