SQL Lekérdezés: túl sok melléklet egy bejegyzéshez


#1

Megtörténhet, hogy karbantartás során tudni szeretnénk melyek tárhely szempontjából a legköltségesebb bejegyzéseink, vagyis melyikhez van a legtöbb média csatolva.

Ez megtehető PHPMyAdmin-ban egy SQL lekérdezéssel egyszerűen ráfuttatva a wp_post táblára, amelyben minden nyilván van tartva.

SELECT 
    `w1`.`ID` AS `bejegyzes_azonosito`,
    `w1`.`post_title` AS `cim`,
    COUNT(`w2`.`ID`) AS `melleklet`
FROM
    (`wp_posts` `w1`
    JOIN `wp_posts` `w2` ON ((`w2`.`post_parent` = `w1`.`ID`)))
WHERE
    ((`w1`.`post_type` = 'post')
        AND (`w2`.`post_type` = 'attachment'))
GROUP BY `bejegyzes_azonosito`
HAVING (COUNT(`w2`.`ID`) > 10)
ORDER BY `melleklet` DESC

Hogy mi számít nekünk “soknak” azt lekérdezés utolsó előtti sorában a HAVING záradék >10 részénél tudjuk átírni. Ha nekünk 20 a sok vagy 5, akkor ennek függően írjuk át. A végeredmény egy három oszlopos tábla a Bejegyzés adatbázis azonosító számával, a Címével és a hozzá csatolt Mellékletek számával.