1

因此,我想了解用户在特定课程中进行测验所花费的时间。

这是我当前的代码。

$study_time = "SELECT SUM(time) as study_time FROM user_quizzes
                        JOIN course_topic_badges ON course_topic_badges.id = user_quizzes.badge_id
                        JOIN course_topics ON course_topic_badges.topic_id = course_topics.id
                        JOIN courses ON course_topics.course_id = courses.id
                        WHERE user_id = ".$user_id." AND courses.id = ".$subject;

获得我需要的东西感觉就像一个可怕的查询。有没有更好的方法来构建我的数据库,或者运行这个不会那么史诗般的查询?

谢谢!

4

2 回答 2

0

在开头使用“解释”语句检查您的查询。如果设置了所有连接/关系并且索引不是 Null,则无需更改它。

于 2012-06-05T14:04:42.897 回答
0

这并不可怕,但您可以通过添加别名来稍微压缩它:

$study_time = "SELECT SUM(time) as study_time FROM user_quizzes uq
    JOIN course_topic_badges ctb ON ctb.id = uq.badge_id
    JOIN course_topics ct ON ctb.topic_id = ct.id
    JOIN courses c ON ct.course_id = c.id
    WHERE user_id = ".$user_id." AND c.id = ".$subject;
于 2012-06-05T14:04:51.067 回答