我的MySQL表中有两个表:cat和notes。
MySQL for cat
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 for notes:
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 :(得分: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