我遇到了一個SQL查詢有點麻煩。這就是爲什麼我希望你們中的一些人能夠幫助我。需要MySQL幫助
我有一個查詢,從每個關係ID中選擇最新的條目,但我想選擇狀態不同的最新條目。桌子看起來像這樣。
+-----------+-------------+------+-----+-------------------+----------------+
| 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,我想看到最新的條目,其中狀態=「Kommet」 ......
我想要每個孩子的2條最新記錄。第一條記錄,其中狀態=「Kommet」,第二個,其中狀態=「Gået」
在事先非常感謝你的幫助......這真是感激:)
我已經添加了「每個組最大的標籤」。這種類型的查詢在Stack Overflow上已經被回答了幾十次。閱讀一些解決方案。 – 2010-09-14 23:03:48