Я пытаюсь выбрать последние updated
(поле) pages
(таблица), за исключением скрытых страниц (visible
= "n"). Тем не менее, я хочу группировать страницы по slug
, поэтому я получаю только один результат за один пул.SQL LEFT JOIN проблема
Следующий запрос вроде работает, но он только выбирает самую последнюю обновленную страницу для каждого слизняк - тогда, если эта страница случается быть скрыта, она удаляет его из результатов :( В этом случае я просто хочу, чтобы получить последние обновления страницы с этим слизняком, что является видимыми.
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
, так что вам нужна последняя обновленная и видимая страница для каждого слизняка? и, я думаю, обновленная дата или int? – MrSoundless
@MrSoundless: обновлена дата – naburi