Как сгруппировать по имени, дате и ограничить current_date - PullRequest
0 голосов
/ 05 октября 2018

Я создаю чат-бота, где люди могут отправлять его отчет в одной игре для Android, поэтому я создал страницу php, где вы можете увидеть отчет за день на основе запроса MySQL.Но я не могу создать правильный запрос.Вот что я пробовал:

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

Как видите, моя таблица "reporte" сохраняет информацию, отправленную персонажем, но один символ может отправлять много отчетов в день, поэтому я хочу показать толькопоследний отчет по имени.

Мне нужно сгруппировать по псевдониму, упорядочить по дате и получить последний отчет для каждого псевдонима, но у меня есть проблемы с этим.Я видел много похожих постов, но до сих пор не могу точно понять, что мне нужно делать.Мне нужна помощь, спасибо!

мой фактический код мой выбор из заказа по дате.но я хочу показать последний псевдоним

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Сначала вам нужно будет запросить таблицу reporte , чтобы получить fecha последнего регистра для каждого псевдонима , например:

Испанский перевод:

Primero, консультант по дебетам la tabla отчет para obtener la fecha корреспондент al último registro de cada псевдоним:

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

Теперь я покажу вам, как присоединиться к этому предыдущему запросу, чтобы получить остальные данные, относящиеся к последнему отчету, связанному с каждым псевдонимом :

Испанский перевод:

Ahora, te mostraré cómo realizar un join con esta consultta previa para obtener el resto de los datos relcionados con el ú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
0 голосов
/ 05 октября 2018

Вы пропустили часть запроса 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...