1

私はmysqlクエリを持っています。

アイデアは、日付範囲の間のレコードを選択することです。日付は UNIX タイムスタンプとして保存されます。以下のクエリを使用すると、(日付範囲外で) 必要以上に多くのレコードが得られます。

私は自分の頭脳を選んだのですが、クエリがどこで間違っているのかわかりません。他のフィールドは正しいように見えますが、希望の日付範囲から外れているだけです。

SELECT
        mdl_user_info_data.data,
        mdl_user.firstname, 
        mdl_user.lastname, 
        mdl_grade_grades.itemid, 
        mdl_grade_items.itemname,
        mdl_quiz.fcpd,
        mdl_user_info_data.id,
        mdl_grade_grades.timecreated AS DATE
        FROM mdl_grade_grades
        INNER JOIN mdl_user ON mdl_grade_grades.userid = mdl_user.id
        INNER JOIN mdl_grade_items ON mdl_grade_grades.itemid = mdl_grade_items.id
        INNER JOIN mdl_quiz ON mdl_grade_items.courseid = mdl_quiz.course
        INNER JOIN mdl_user_info_data ON mdl_user.id = mdl_user_info_data.userid
        INNER JOIN mdl_course ON mdl_grade_items.courseid = mdl_course.id
        WHERE mdl_grade_grades.timecreated BETWEEN (FROM_UNIXTIME(1371704400) AND       FROM_UNIXTIME(1371790800))
        AND mdl_user_info_data.fieldid = 1
        AND mdl_grade_items.itemname IS NOT NULL
        AND mdl_course.category = 27
        OR mdl_grade_items.itemname LIKE '%asa%'
        GROUP BY mdl_user.firstname, mdl_user.lastname, mdl_grade_grades.timecreated
4

2 に答える 2