В настоящее время у меня есть 3 таблицы:
Таблица пользователей
имя пользователя | имя | фамилия
Таблица курсов
идентификатор курса | название курса | дата курса | описание курса
Таблица посещаемости
идентификатор курса | имя пользователя
Таблица пользователей содержит информацию о пользователях.
Таблица курсов содержит информацию о курсах.
Есть несколько курсов с одинаковым названием, но разной датой.
Таблица посещаемости содержит посещаемость пользователей для курса.
Мне дают список имени пользователя и названия курса. Я должен найти имя и фамилию каждого пользователя и самую последнюю дату, когда каждый пользователь прошел курс.
В настоящее время я впервые использую этот запрос, чтобы найти имя и фамилию.
Select firstname, lastname from user where username in (<user list>)
Далее я перебираю результаты предыдущего запроса и беру первый результат следующего запроса:
select date from attendance, course
where attendance.course_id in (select course_id from course where course_name = <course>)
and username = <username> and attendance.course_id = course.course_id
order by course_date desc
Результатом всего этого является то, что для n пользователей необходимо выполнить n + 1 количество запросов. Я хотел бы свести это к одному запросу, любое предложение?
Спасибо