我有 3 个表users
:courses
和courseusers
。Courseusers 是连接 courses.idCourse 和 users.idUser 的中间表。但是,中间表没有外键约束 and ON DELETE CASCADE
or ON UPDATE CASCADE
。
Users:
idUser|name
Courses:
idCourse|name
Courseusers:
id|idUser|idCourse
我的问题是,我如何获得订阅最多的前 3 门课程( 中的大多数条目),同时忽略和表courseuser
中手动删除的用户(它们仍将作为条目存在)。users
courses
courseuser
我现在拥有的:
SELECT c.idCourse, c.name, count(*) as count
FROM courseusers as cu
JOIN course as c
ON cu.idCourse=c.idCourse
JOIN users as usr
ON (usr.idUser=u.idUser)
GROUP BY u.idCourse
ORDER BY count DESC
LIMIT 3