J'essaie de sélectionner la dernière updated
(champ) pages
(tableau), à l'exclusion des pages masquées (visible
= "n"). Cependant, je veux grouper les pages par slug
afin que je n'obtienne qu'un résultat par slug.Problème SQL LEFT JOIN
La requête suivante fonctionne un peu, mais il ne sélectionne que la dernière page mise à jour pour chaque limace - puis, si cette page se trouve être caché, il supprime des résultats :( Dans ce cas, je veux juste la dernière page mise à jour avec cette limace qui est visible.
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
donc vous voulez la dernière page mise à jour et visible pour chaque slug? et je suppose que mis à jour est une date ou int? – MrSoundless
@MrSoundless: mise à jour est une date – naburi