I'm trying to get a list of partners (roleid = 511) who posted comments in the month of April of this year.
I would like to embed the count(*) of comments in each row.
And I would like to sort the results by the partner having the most comments first and decend to the partner with the least comments (but > 0) at the bottom of the list.
Here's what I've come up with (which is not working):
Code MySQL:SELECT u.uid, u.name, u.mail (SELECT @comment_count:=count(*) FROM comments c WHERE c.uid = u.uid AND EXTRACT(YEAR_MONTH FROM c.timestamp) = '201204') AS april comments, DATE_FORMAT(FROM_UNIXTIME(u.access),'%b-%d-%Y') AS 'last visit' FROM users AS u INNER JOIN users_roles AS ur ON ur.uid = u.uid AND ur.rid = 511 WHERE u.mail NOT LIKE '%example.com%' AND EXTRACT(YEAR_MONTH FROM u.access) > '201204' ORDER BY @comment_count; mysql> describe users; +------------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+------------------+------+-----+---------+----------------+ | uid | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(60) | NO | UNI | | | | pass | varchar(32) | NO | | | | | mail | varchar(64) | YES | MUL | | | | mode | tinyint(1) | NO | | 0 | | | sort | tinyint(1) | YES | | 0 | | | threshold | tinyint(1) | YES | | 0 | | | theme | varchar(255) | NO | | | | | signature | varchar(255) | NO | | | | | created | int(11) | NO | MUL | 0 | | | access | int(11) | NO | MUL | 0 | | | status | tinyint(4) | NO | MUL | 0 | | | timezone | varchar(8) | YES | | NULL | | | language | varchar(12) | NO | | | | | picture | varchar(255) | NO | | | | | init | varchar(64) | YES | | | | | data | longtext | YES | | NULL | | | login | int(11) | NO | | 0 | | | timezone_name | varchar(50) | NO | | | | | signature_format | smallint(6) | NO | | 0 | | +------------------+------------------+------+-----+---------+----------------+ 20 rows in set (0.00 sec) mysql> describe comments; +-----------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+---------------------+------+-----+---------+----------------+ | cid | int(10) | NO | PRI | NULL | auto_increment | | pid | int(10) | NO | MUL | 0 | | | nid | int(10) | NO | MUL | 0 | | | uid | int(10) | NO | MUL | 0 | | | subject | varchar(64) | NO | | | | | comment | longtext | NO | | NULL | | | hostname | varchar(128) | NO | | | | | timestamp | int(11) | NO | | 0 | | | status | tinyint(3) unsigned | NO | MUL | 0 | | | format | smallint(6) | NO | | 0 | | | thread | varchar(255) | NO | | | | | name | varchar(60) | YES | | NULL | | | mail | varchar(64) | YES | | NULL | | | homepage | varchar(255) | YES | | NULL | | +-----------+---------------------+------+-----+---------+----------------+ 14 rows in set (0.00 sec) mysql> describe role; +-------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+----------------+ | rid | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(64) | NO | UNI | | | +-------+------------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)



Reply With Quote
Bookmarks