我有一个关于sql的问题,我从来没有使用过select sub,结果我迷路了。
meu sql:
SELECT CLI.id, CLI.nome, CLI.senha, CLI.email, CLI.cpf, CLI.celular, CLI.data_nasc, CLI.genero, CLI.data_cadastro, CLI.status, CLI.id_socket, ATEN.mensagem, ARQ.nome AS foto, ATEN.data_mensagem
FROM ut_clientes AS CLI
LEFT JOIN ut_arquivos AS ARQ ON (ARQ.id_tipo = CLI.id AND ARQ.tipo = "ut_clientes")
INNER JOIN ut_atendimentos AS ATEN ON (ATEN.id_usuario_envio = CLI.id)
WHERE ATEN.id_usuario_envio != 59163
GROUP BY CLI.id
ORDER BY ATEN.data_mensagem
DESC
好吧,我想做的是根据客户id对消息进行分组,并根据数据管理只带来数据库中记录的最后一条消息。
我已经尝试了很多方法,但最后一个显示的是在db中插入的第一条消息。
如果有人能帮助我,我将不胜感激。谢谢你们!
1条答案
按热度按时间vql8enpb1#
这也许能帮你。。。我正在使用预查询的连接(pq别名)。这个查询只会转到您的消息并根据max()获取客户机id和最新的。通过在此处执行group-by,它最多会为每个客户机返回1条记录。我还有where子句来排除您列出的id。
根据这个结果,您可以对查询的其余部分进行简单的连接。