Запрос ниже, кажется LIMIT всех результатов, когда он Оставшись JOINED, так что общее в подзапросе только 1. Как я могу сделать это LIMIT, так что я получаю 1:1
совпадение между projects
строками и последней датой, хранящейся в projects_hours_archive
, в которой хранятся записи projects.projected_hours
, которые собираются на задании cron раз в неделю?предела а LEFT JOIN подзапроса 1 результат
projected_hours_archive
имеет столбцы: id
, project_id
, hours
и datetime
.
SELECT
GROUP_CONCAT(projected_hours_last.date, '|', projected_hours_last.number) AS 'projected_last_info'
FROM
projects
LEFT JOIN (
SELECT *
FROM
projected_hours_archive
ORDER BY date DESC
LIMIT 1
) AS projected_hours_last ON (projected_hours_last.project_id = projects.id)
WHERE projected_hours > 0
GROUP BY projects.id
Я попытался принять с использованием MySQL Limit LEFT JOIN Subquery after joining, но не был успешным. Если я удалю LIMIT
в подзапросе, я получаю слишком много результатов.
Извините, что я забыл положить это - я пытаюсь получить вторую с последней даты. –
@meder, есть трюк из этого поста, чтобы получить второй, http://stackoverflow.com/questions/17765752/mysql-how-to-get-2nd-highest-value-with-group-by-and- в-левой присоединиться. обновил ответ, поскольку данных там нет, не удалось попробовать. – radar