查询中的PHP / MySQL查询

时间:2015-02-13 19:58:56

标签: php mysql join

你好,我有一张桌子,里面有学校课程清单。 (schoolcourses) 该表与另一个分配给该课程的教师表(教师)连接在一起。

到目前为止很容易。

复杂的部分在获取教师状态所需的同一查询中。还有另一个名为course_acceptance_history的表。因此,当教师被分配课程时,他接受课程。它会在course_acceptance_history中插入一条记录。

一个insturctor CAN接受,然后拒绝一个课程,然后另一个教练可以接受相同的课程。换句话说,course_acceptance_history可以为同一个课程提供10个条目。

如何在获取所有课程的查询期间从course_acceptance_history中选择课程的最近记录?

这是我的查询看起来像但我认为我需要一个子查询来从course_acceptance_history中仅提取该课程的最高ID和教师ID的记录

实施例

    SELECT * FROM schoolcourses

INNER JOIN instructors ON schoolcourses.courseinstructor = instructors.instructorsid
INNER JOIN course_acceptance_history ON schoolcourses.schoolcoursesid = course_acceptance_history.courseid

我想我需要将上面的查询与

合并
SELECT * FROM course_acceptance_history WHERE instructorid=$insid AND courseID=$courseID ORDERBY ID DESC

1 个答案:

答案 0 :(得分:0)

SELECT * FROM schoolcourses
    INNER JOIN instructors ON
        schoolcourses.courseinstructor = instructors.instructorsid
    INNER JOIN course_acceptance_history ON
        schoolcourses.schoolcoursesid = course_acceptance_history.courseid
WHERE course_acceptance_history.id =
    (SELECT id
        FROM course_acceptance_history
        WHERE instructorid=instructors.id
        AND courseID=schoolcourses.schoolcoursesid
        ORDER BY ID DESC
        LIMIT 1)