如何按名称、日期和限制当前日期分组

af7jpaap  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(510)

我正在制作一个聊天机器人,人们可以在一个android游戏中发送他的报告,所以我创建了一个php页面,在那里你可以看到基于mysql查询的当天报告。但我无法创建正确的查询。这就是我尝试过的:

select
    id, nickname, fecha, bestia1, bestia2, bestia3, bestia4, bestia5
from
    reporte
where
    fecha > CURRENT_DATE()
group by
    nickname DESC

如您所见,我的表“reporte”保存一个字符发送的信息,但是一个字符每天可以发送多个报告,因此我只想显示每个名称的最新报告。
我需要按昵称分组,按日期排序,并获取每个昵称的最新报告,但我对此有问题。我看到过许多类似的帖子,但仍然不知道我到底要做什么。我需要帮助,谢谢!
我的实际代码我从订单中按日期选择。但我想展示每个昵称的最新信息

6fe3ivhb

6fe3ivhb1#

你错过了比赛 order by 你的问题的一部分。
假设其余部分是正确的,下面是您的查询:

select id,nickname, fecha,bestia1,bestia2,bestia3,bestia4,bestia5 from reporte WHERE fecha>CURRENT_DATE() group by nickname order by id DESC

因为有一个小组,你可能需要改变 idmax(id)

lymnna71

lymnna712#

首先,您需要查询report表以获取每个昵称的最新寄存器的fecha,如下所示:
西班牙语翻译:
primero,debes consultar la tabla reporte para obtener la fecha correspondente alúltimo registro de cada昵称:

SELECT nickname, MAX(fecha)
FROM reporte
GROUP BY nickname

现在,我将向您展示如何加入前面的查询,以获取与每个昵称关联的最新报告相关的其余数据:
西班牙语翻译:
阿霍拉,特莫斯特拉尔é có我不想参加一个关于关系的咨询会último informe de cada昵称:

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

相关问题