2011-12-28 86 views
0

我在我的MySQL表中有2个表:cat和notes。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的笔记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 2011-12-28 14:20:24

回答

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