Search code examples
mysqlcollisionschedule

mysql schedule collision data


I have schedule data course like below, how i can detect there was any data collision / clashing data on it? in mysql syntax

+-----------+--------+--------+---------+-----------+----------+---------+--------+-------+
| IDCourse  | Day    | Class  | Room    | IDTeacher | Capacity | Residue | Begin  | End   |
+-----------+--------+--------+---------+-----------+----------+---------+--------+-------+
| MI09BB11  | Monday | A      | A.1.4   | RA        | 40       | 1       | 08:00  | 10:00 |
| MI09BB12  | Monday | A      | A.1.4   | RA        | 40       | 1       | 08:30  | 10:30 | <-- clash 
| MI09BB51  | Monday | A      | A.1.4   | RA        | 40       | 1       | 11:00  | 13:00 |
-
-
-
+-----------+--------+--------+---------+-----------+----------+---------+--------+-------+

Sorry my bad english. thanks


Solution

  • SELECT s1.IDCourse, s2.IDCourse, s1.Day
    FROM schedule s1
    JOIN schedule s2
    ON s1.Day = s2.Day AND s1.Room = s2.Room AND s1.IDCourse != s2.IDCourse
    WHERE s1.Begin BETWEEN s2.Begin AND s2.End