gpt4 book ai didi

mysql - 在使用 JOIN 进行 GROUP BY 之前进行 ORDER BY

转载 作者:行者123 更新时间:2023-11-29 10:25:52 24 4
gpt4 key购买 nike

我的 SQL 查询有问题。我想为用户显示最后一条消息。所以,我使用“GROUP BY”方法,但他不显示最后一条消息。

这是我的第一个查询:

SELECT `messages`.*, `conversations`.* 
FROM `messages` JOIN `conversations` ON `conversations`.`cNUM` = `messages`.`mCONV_NUM`
WHERE `cUSER2` = '2'
GROUP BY `messages`.`mCONV_NUMn`

我尝试关注这个主题:ORDER BY date and time BEFORE GROUP BY name in mysql (以及许多其他)

我有这个:

SELECT `messages`.*, `conversations`.* 
FROM (SELECT mTIME
FROM `messages`
ORDER BY mTIME desc) AS M
JOIN `conversations` ON `conversations`.`cNUM` = `messages`.`mCONV_NUM`
WHERE `cUSER2` = '2'
GROUP BY `messages`.`mCONV_NUMn`

我有这个错误:表“消息”未知。

所以..我需要你们的帮助

最佳答案

您为消息表指定了别名 M,正如 isaace 所说,您应在查询的其余部分中将其称为“M”,因为此临时名称在整个查询期间持续存在,并且 FROM 是查询处理的初始阶段

We are talking about something called logical query processing, this means that in your query FROM statement is evaluated and processed initially and then the rest of query.

<小时/>

在 LQP 术语中,查询将按以下顺序处理。

  • 来自 --> 何处 --> 分组依据 --> 有 --> 选择 --> 排序依据

(当然我遗漏了一些阶段,但你明白了)

您还可以使用 LIMIT 来获取用户的最后一条消息。只需在末尾添加 LIMIT 1 即可。

关于mysql - 在使用 JOIN 进行 GROUP BY 之前进行 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48323396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com