All pastes #437248 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-04-12 22:57 UTC
rendered paste body
CREATE TEMPORARY TABLE node_count (uid int, nodes int);
INSERT INTO node_count
SELECT users.uid, count(*) as nodes
FROM users
LEFT JOIN users_roles ON
(
 users_roles.rid IN (3,4,5)
 AND users_roles.uid=users.uid
)
INNER JOIN node_revisions ON (node_revisions.uid=users.uid)
GROUP BY users.uid;

CREATE TEMPORARY TABLE comment_count (uid int, comments int);
INSERT INTO comment_count
SELECT users.uid, count(*) as comments
FROM users
LEFT JOIN users_roles ON
(
 users_roles.rid IN (3,4,5)
 AND users_roles.uid=users.uid
)
INNER JOIN comments ON (comments.uid=users.uid)
GROUP BY users.uid;

SELECT 
 users.name, 
 if(node_count.nodes is NULL,0,node_count.nodes) as nodes, 
 if(comment_count.comments is NULL,0,comment_count.comments) as comments,
 (if(node_count.nodes is NULL,0,node_count.nodes) + if(comment_count.comments is NULL,0,comment_count.comments)) as combined
FROM 
users 
LEFT JOIN node_count ON (users.uid=node_count.uid)
LEFT JOIN comment_count ON (users.uid=comment_count.uid)
WHERE (comments!=0 OR nodes!=0)
ORDER BY combined DESC;