0
数据库如下:Mysql的选择crossreferencing 3个表
Class_Memberships[id,user_id,class_id]
Class_Challenges[id,challenge_id,class_id]
Challenge_attempts[id,user_id,challenge_id,timestamp,solved]
我需要计算分数这是怎么了很多尝试把一个用户完成一个挑战。
要在全球做到这一点(不考虑该类)我运行下面的
SELECT user_id, time, count(*) as count, users.username
FROM challenge_attempts LEFT JOIN users ON
users.id = user_id WHERE status = 1
哪个做这项工作并没有出现有任何错误
我试图限制仅适用于特定类别的用户和挑战的结果。 所以我的查询成为该
SELECT class_memberships.class_id, user_id, count(*) as count
FROM class_memberships,users,class_challenges
WHERE class_memberships.class_id = 4 AND
users.id = user_id AND
user_id IN (
SELECT user_id
FROM challenge_attempts LEFT JOIN users ON
users.id = user_id WHERE status = 1)
AND class_challenges.challenge_id IN(
SELECT challenge_id FROM class_challenges
WHERE class_challenges.class_id = 4
)
的
SELECT class_memberships.class_id, user_id, count(*) as count
FROM class_memberships,users,class_challenges
WHERE class_memberships.class_id = 4 AND
users.id = class_memberships.user_id
部分应该得到用户的一类
的
SELECT user_id
FROM challenge_attempts LEFT JOIN users ON
users.id = user_id WHERE status = 1
应该得到他们的分数
终于
SELECT challenge_id FROM class_challenges
WHERE class_challenges.class_id = 4
应该限制分数属于类的挑战。 但是,当我尝试运行它sql输出列'class_id'在字段列表中是不明确的
我在这里错过了什么?
谢谢你的回答,伯爵应该告诉我们有多少挑战属于用户解决的问题。 – ndp 2013-04-26 09:35:39