2011-12-28 3 views
0

У меня есть 2 таблицы в моей таблице MySQL: cat и notes.MySQL осталось присоединиться и считать

MySQL для кошки

CREATE TABLE IF NOT EXISTS `cat` (
    `cat_id` int(11) NOT NULL AUTO_INCREMENT, 
    `cname` int(11) NOT NULL, 
    PRIMARY KEY (`cat_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

MySQL для заметок:

CREATE TABLE IF NOT EXISTS `notes` (
    `notes_id` int(11) NOT NULL AUTO_INCREMENT, 
    `title` varchar(50) NOT NULL, 
    `notebody` varchar(300) NOT NULL, 
    `cat_id` int(20) NOT NULL, 
    `approved` int(11) NOT NULL, 
    PRIMARY KEY (`notes_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Я хотел бы знать, как посчитать, сколько нот каждая категория имеет, утвердивший равен 1. и я хочу, чтобы показать категории которые имеют нулевые примечания как имя категории - 0. Я пробовал левое соединение, но он оставляет все категории, у которых есть ноль.

+0

показать ваш SQL и кто-то может помочь вам. – Robert

ответ

0

Попробуйте

SELECT cat_id, COUNT(*) AS cnt 
FROM notes 
WHERE approved = 1 
GROUP BY cat_id 

И

SELECT c.cat_id, c.cname, COUNT(*) AS cnt 
FROM cat c 
LEFT OUTER JOIN notes n ON n.cat_id = c.cat_id 
GROUP BY c.cat_id 
HAVING cnt < 1 
Смежные вопросы