Я пытаюсь выбрать самое последнее updated
(поле) pages
(таблица), за исключением страниц, которые скрыты (visible
= "n"). Однако я хочу сгруппировать страницы по slug
, поэтому я получаю только один результат на слаг.
Следующий запрос вроде бы работает, но он выбирает только последнюю обновленную страницу для каждого слага - , затем, если эта страница оказывается скрытой, он удаляет ее из результатов: ( В этом случае я просто хотите получить последнюю обновленную страницу с этим фрагментом, который является видимым.
SELECT `p1`.`id` AS `pID`, `p1`.`slug` AS `url`, `p1`.`revision`, `p1`.`title`, `p1`.`published`, `p1`.`updated`, (SELECT COUNT(*) FROM `pages` WHERE `slug` = `url` AND `visible` = "y") AS `revisionCount`, (SELECT COUNT(*) FROM `tests` WHERE `pageID` = `pID`) AS `testCount`
FROM `pages` `p1`
LEFT JOIN `pages` `p2` ON `p1`.`slug` = `p2`.`slug` AND `p1`.`updated` < `p2`.`updated`
WHERE `p2`.`updated` IS NULL AND `p1`.`visible` = "y"
ORDER BY `p1`.`updated` DESC