以下のコメントに基づいて、2012 年 11 月 24 日に修正されました。
メンバーのMySQLデータベース(v5.0.95)があり、メンバーがいつ参加したかがリストされています
CREATE TABLE IF NOT EXISTS `members` (
`id` int(11) NOT NULL,
`group_id` int(11) NOT NULL,
`name` varchar(64) NOT NULL,
`joined` datetime NOT NULL,
KEY `id` (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
また、YYYY-MM を示すレコードを持つ 2 番目のテーブルもあります。
CREATE TABLE IF NOT EXISTS `blocker` (
`group_id` int(11) NOT NULL,
`YYYYMM` char(7) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
理想的には、次の結合によって次のものが提供されます
SELECT date_format( m.joined, '%Y-%m' ) AS DateJoined, count( * ) AS NumJoined
FROM members AS m
LEFT OUTER JOIN blocker AS b
ON b.YYYYMM = date_format( m.joined, '%Y-%m')
WHERE m.group_id =1637017 AND b.group_id =1637017
GROUP BY DateJoined
ORDER BY DateJoined ASC
私にこれをくれるだろう
DateJoined NumJoined
2012-01 0
2012-02 0
2012-03 0
2012-04 17
2012-05 0
2012-06 12
2012-07 10
2012-08 10
2012-09 11
2012-10 14
2012-11 4
残念ながら、結果がゼロの月は提供されず、これが得られます
DateJoined NumJoined
2012-04 17
2012-06 12
2012-07 10
2012-08 10
2012-09 11
2012-10 14
2012-11 4
任意のポインタをいただければ幸いです。私は近いですか...?