Для сценария онлайн-курса
Это SQL Я написал:
SELECT l.`id` as parent_lesson_id, l.bigImageURL, l.name,
(SELECT `percent` as percent FROM courses.`lesson_sessions`
WHERE lesson_id = parent_lesson_id AND user_id = 52461 ORDER BY `percent` DESC LIMIT 1) as percent
FROM courses.lessons l
WHERE l.courseID = 1 AND percent > 30
ORDER by `order` ASC
Я использую подзапрос, потому что я возвращаю одну строку (которая имеет самый высокий процентов), и не все из них. Если бы я использовал LEFT JOIN
, я не знаю, как бы вернуть только те строки, которые имеют наибольший процент для этого parent_lesson_id
У урока может быть много урок lesson_sessions, каждый из которых имеет процент
I получаю следующее сообщение об ошибке при выполнении этого запроса:
#1054 - Unknown column 'percent' in 'where clause'
Проблема, которую я пытаюсь решить:
Как вернуть все строки урока, где процент> 30, принимая только строка с наибольшим процентом, относящаяся к уроку из таблицы сессий урока (урок может иметь много сессий, каждая с разным процентом завершения урока).
В основном я хочу вернуть все уроки, где самый высокий процент> 30