Mysql
 sql >> база данни >  >> RDS >> Mysql

Преброяване на всички публикации, принадлежащи към категория И нейните подкатегории

Ако категориите не са вложени безкрайно, можете да се присъедините към тях едно ниво наведнъж. Ето пример за до 3 нива на влагане:

SELECT c.name, COUNT(DISTINCT p.PID) as postCount 
FROM categories AS c 
LEFT JOIN categories AS c2
    ON c2.parent = c.catid
LEFT JOIN categories AS c3
    ON c3.parent = c2.catid
LEFT JOIN posts AS p 
    ON c.CATID = p.category
    OR c2.CATID = p.category
    OR c3.CATID = p.category
WHERE c.parent = '0' 
GROUP BY c.CATID, c.name
ORDER BY c.name ASC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете всички дати между две дати, без да използвате таблица (генерирайте списък с дати)

  2. php mysql подреждането по времева марка е неправилно

  3. Как да създадете връзки в MySQL

  4. InnoDB (MySQL 5.5.8) правилният избор ли е за няколко милиарда редове?

  5. PHP - извличане на подготвен stmt в клас:Класът за фатална грешка не е намерен