
Untitled
By: a guest on
Jul 17th, 2012 | syntax:
None | size: 0.52 KB | hits: 12 | expires: Never
MySQL Order query response by number of matches on another row
SELECT b.id, COUNT(b.id) AS count
FROM (`users_colleges` AS a)
RIGHT JOIN `colleges` AS b ON `b`.`id` = `a`.`college_id`
GROUP BY `b`.`id`
ORDER BY COUNT(b.id) DESC
SELECT c.id, COUNT(uc.college_id) AS count
FROM colleges AS c
LEFT JOIN users_colleges AS uc
ON c.id = uc.college_id
GROUP BY c.id
ORDER BY COUNT(uc.college_id) DESC
WHERE NOT EXISTS
(
SELECT *
FROM users_colleges AS uc2
WHERE uc2.college_id = c.id
AND uc2.user_id = '42'
)