首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过以下方法从表中获得最少的ID

如何通过以下方法从表中获得最少的ID
EN

Stack Overflow用户
提问于 2019-08-12 16:28:33
回答 1查看 32关注 0票数 0

我想得到用户最近的消息。我需要把最后的信息识别给每个人。我该怎么做呢?谢谢!

结构

查询

代码语言:javascript
复制
SELECT *
FROM `messages`
WHERE (
  `from` = 1 OR
  `to` = 1
)
GROUP BY (`from` + `to`)
ORDER BY `id` DESC
LIMIT 10

结果

我需要什么

如果你有同样的问题?我找到解决办法了!

代码语言:javascript
复制
SELECT `id`, `from`, `to`, `text`, `created`
FROM (
  SELECT *, (`from` + `to`) AS `anchor`
  FROM `messages`
  WHERE (
    `from` = 1 OR
    `to` = 1
  )
  ORDER BY `id` DESC
  LIMIT 1
) AS `*`
GROUP BY `anchor`;
EN

回答 1

Stack Overflow用户

发布于 2019-08-12 16:31:18

如果我正确理解,您可以使用关联子查询:

代码语言:javascript
复制
select m.*
from messages m
where 1 in (m.from, m.to) and
      m.id = (select max(m2.id)
              from messages m2
              where (m2.from = m.from and m2.to = m.to) or
                    (m2.from = m.to and m2.to = m.from)
             );

注意:fromto实际上是列的坏名称,因为它们是SQL关键字。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57464916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档