MySQL两个表计数和显示

时间:2012-01-16 03:15:51

标签: mysql

我有一张桌子:

ogloszenie
Id | id_kat
1    1
2    2
3    1
4    1
...


kategoria
Id_kat | Name
1        Test1
2        Test2
3        Tesy3
4        Test4
...

我的查询:

SELECT kategoria.Name, count(ogloszenie.Id_kategoria) AS ile
FROM ogloszenie INNER JOIN kategoria ON ogloszenie.id_kat = kategoria.Id_kat
GROUP BY kategoria.Id_kat;

当我运行此查询时,只显示id_kat在表'ogloszenie'中的行

Test1 3
Test2 1

我需要显示:

Test1 3
Test2 1
Test3 0 
Test4 0

2 个答案:

答案 0 :(得分:0)

SELECT kategoria.Name, count(IFNULL(ogloszenie.Id_kategoria, 0)) AS ile
FROM kategoria
LEFT JOIN ogloszenie ON ogloszenie.id_kat = kategoria.Id_kat
GROUP BY kategoria.Id_kat;

LEFT JOIN表示您将kategoria ID作为基本ID而不是ogloszenie Id_kat

要么是,要么

FROM ogloszenie
RIGHT JOIN kategoria ...

答案 1 :(得分:0)

SELECT  kategoria.Name, 
        COUNT(ogloszenie.Id_kat) as iCount
FROM    kategoria left join ogloszenie
        ON kategoria.Id_kat = ogloszenie.Id_kat
GROUP BY  kategoria.Name