Я занимаюсь разработкой веб-приложения, которое отслеживает записи обучения сотрудников в рамках моего универкурса.
Я использую phpMyadmin и MySQLi.
У меня есть 3 таблицы базы данных tblUser, tblCourse и tblBookings.
tblUser имеет столбцы UserID, First_Name, Last_Name, Email, Access_Level
tblCourse имеет CourseID, Course_Title, Course_Start_Time, Course_Duration, Course_Description
только BookingID, CourseID и UserID, которые связаны с соответствующим пользователем / курсом в двух других таблицах.
tblBookings looks something like this
+-----------+----------+--------+
| BookingID | CourseID | UserID |
+-----------+----------+--------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 2 | 2 |
| 5 | 2 | 3 |
| 6 | 3 | 1 |
+-----------+----------+--------+
Я пытаюсь написать оператор SQL, чтобы заполнить таблицу, в которой отображаются только те курсы, для которых текущий пользователь не зарегистрирован. Таким образом, в приведенном выше сценарии для UserID 1 я хотел бы заполнить таблицу только сведениями о курсе Course с CourseID 2, поскольку это единственный курс, на котором он не зарегистрирован.
Ближайший Гот получил с этим утверждением:
SELECT `tblCourseAdmin`.`CourseID`, `Course_Title`, `Course_Date`, `Course_Start_Time`, `Course_Duration`, `Course_Description`, `Max_Attendees`
FROM `tblCourseAdmin`
INNER JOIN `tblBookings`
ON `tblCourseAdmin`.`CourseID` = `tblBookings`.`CourseID`
WHERE`tblBookings`.`UserID` != 1
Но это по-прежнему подтягивает курсы, на которых зарегистрирован пользователь, если на этот курс записаны другие пользователи.