2011-12-28 3 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の:私は、各カテゴリが承認されたが1に等しいことを持っているどのように多くのノートカウントする方法を知りたいと、私はカテゴリを表示したい

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 ; 

0の音符をカテゴリ名0として持っています。私は左の結合を試みましたが、0の音符を持つすべてのカテゴリを残しています。

+0

を試してみてください。 – Robert

答えて

0

はあなたのSQLと誰かがあなたを助けることができる示し

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 
関連する問題