This question already has answers here:
Retrieving the last record in each group - MySQL
(25个答案)
5年前关闭。
我有一张桌子:
posts
id    | msg        | topicId
 1    | Hello World| 1
 2    | Whats up?  | 2
 3    | lorem ipsum| 1
 4    | new Topic  | 3
 5    | Dolor sit  | 1
 6    | some text  | 3
 7    | response   | 2
 8    | asdf       | 3

我想得到这样的每一个id的最大topicId行:
result
id    | msg        | topicId
 5    | Dolor sit  | 1
 7    | response   | 2
 8    | asdf       | 3

我的问题是我不知道如何查询我想要的结果。
我使用的是symfony 2.3和docine,所以如果您可以使用docine查询构建器代码来回答这个问题,那就太好了:)
有什么办法能有效地做到这一点吗?

最佳答案

SELECT m1.*
FROM YourTable T1
    LEFT JOIN YourTable T2 ON (T1.id= T2.id AND T1.TopicId < T2.TopicId)
WHERE T2.id IS NULL;

关于php - MySQL查询具有特定字段的最后一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20593428/

10-11 02:57