我需要根据两个表创建报告。表1(ka_registrationlog)包含用户在应用程序中执行的所有操作的日志。 表二(lara_teacherclass)包含将教师与他们的班级每天和每小时联系起来的记录。 两个表都驻留在同一个数据库中:
SELECT RegDate,
ka_registrationlog.TeacherID,
lara_teacherclass.TeacherID,
lara_teacherclass.ClassID,
RegHourID,
lara_teacherclass.DayOfWeek,
lara_teacherclass.HourID
FROM lara_teacherclass LEFT JOIN ka_registrationlog ON
lara_teacherclass.TeacherID = ka_registrationlog.TeacherID
AND lara_teacherclass.HourID = ka_registrationlog.RegHourID
AND (WEEKDAY(RegDate)+1) = lara_teacherclass.DayOfWeek
WHERE lara_teacherclass.ClassID = 89
AND WEEK(RegDate) = WEEK('2015/01/05')
AND (Type = 1 OR Type = 2)
我已经尝试了LEFT JOIN,RIGHT JOIN和Join左边的任何一个表格,每次我最终得到41条记录(表格1中的记录数量,而在表格2中,我有44条记录给出(89)。
问题是我需要能够报告没有注册的那些小时/天,我希望用一个查询来代替编写一个循环通过表二的函数,然后检查相应的记录可以在表2中找到(每个类可以导致超过50个查询(有100多个类循环)。
我还尝试将WHERE子句移动到te ON子句,但没有产生任何记录。
任何人都知道这里出了什么问题?