Hej:
Jag vill ha följande kategorisystem:
kategori a (x artiklar):
-underkategori a1 (x artiklar)
-underkategori a2 (x artiklar)
-underkategori a3 (x artiklar)
kategori b (x artiklar)
- underkategori b1 (x artiklar)
- underkategori b2 (x artiklar)
osv
- osv
(x artiklar) = hur många artiklar har postats under denna kategori/underkategori
Jag har följande tavlor (förenklade):
create table kategori
(
id INT
name
PRIMARY KEY(id);
);
create table underkategori
(
id INT
kategori_id INT /* refererar till kategori (id) */
);
create table artikel
(
id INT
kategori_id INT /* refererar till kategori (id) */
underkategori_id INT /* refererar till underkategori (id) */
);
Jag har lite problem med att definiera sql-frågan.
Just nu har jag:
SELECT k.*, a.*, count(art.id) FROM article as art, category AS k INNER JOIN subcategory AS a ON a.category_id = k.id group by (a.id)
OBS: ovanstående sql-fråga tar med onödigt mycket data just nu (k.*, a.*) men när jag får frågan att fungera så finslipar ja den)
men den returnerar samma värde för count().
Jag ska ha nåt i stil med
WHERE art.category_id = k.id AND art.subcategory_id = a.id
men den tar inte med de kategorier/underkategorier som ännu inte används i en artikel.
Jag ska egentligen ha nån sort LEFT JOIN men jag vet inte riktigt hur jag ska placera den i ovanstående sql-fråga.