我正在制作一个聊天机器人,人们可以在一个android游戏中发送他的报告,因此我创建了一个php页面,您可以在其中基于mysql查询查看当天的报告。但是我无法创建正确的查询。这是我尝试过的:
select
id, nickname, fecha, bestia1, bestia2, bestia3, bestia4, bestia5
from
reporte
where
fecha > CURRENT_DATE()
group by
nickname DESC
如您所见,我的表“报告”保存了一个字符发送的信息,但是一个字符每天可以发送许多报告,因此我只想显示每个名称的最新报告。
我需要按昵称分组,按日期排序,并获取每个昵称的最新报告,但是我对此有疑问。我见过许多类似的帖子,但仍然无法弄清楚我该怎么做。我需要帮助,谢谢!
my actual code my select from order by date. but i want to show the latest per nickname
答案 0 :(得分:0)
您错过了查询的order by
部分。
假设其余部分正确,这是您的查询:
select id,nickname, fecha,bestia1,bestia2,bestia3,bestia4,bestia5 from reporte WHERE fecha>CURRENT_DATE() group by nickname order by id DESC
有一个分组依据,您可能需要将id
更改为max(id)
答案 1 :(得分:0)
首先,您需要查询表报告以获得每个昵称的最新注册信息的 fecha ,如下所示:>
西班牙语翻译:
Primero,律师顾问报告副主席 fecha 代理人昵称:
SELECT nickname, MAX(fecha)
FROM reporte
GROUP BY nickname
现在,我将向您展示如何加入上一个查询,以获取与每个与昵称相关的最新报告有关的其余数据:
西班牙语翻译:
Ahora,加入了大多数咨询机构,并获得了进一步的协助,昵称:
SELECT
r1.id,
r1.nickname,
r1.fecha,
r1.bestia1,
r1.bestia2,
r1.bestia3,
r1.bestia4,
r1.bestia5
FROM
reporte AS r1
INNER JOIN
(
SELECT nickname, MAX(fecha) AS max_date
FROM reporte
GROUP BY nickname
HAVING MAX(fecha) >= CURRENT_DATE()
) AS latests_reports ON latests_reports.nickname = r1.nickname AND latests_reports.max_date = r1.fecha