У меня есть таблица course_content
и таблица lesson
, как показано ниже
| course_id | lesson_id | content_id | seq_no |
-----------------------------------------------
| 1 | 1 | 1 | 1 |
| 1 | 1 | 2 | 2 |
| 1 | 5 | 3 | 1 |
| 1 | 5 | 4 | 2 |
| 1 | 8 | 12 | 1 |
-----------------------------------------------
| leson_id | lesson_no | course_id |
------------------------------------
| 1 | 1 | 1 |
| 5 | 3 | 1 |
| 8 | 2 | 1 |
------------------------------------
offering_assmt
таблица:
| offering_id | lesson_id | assessment_id |
-------------------------------------------
| 11 | 1 | 0 |
| 11 | 5 | 1 |
| 11 | 8 | 3 |
-------------------------------------------
Я хочу иметь next
предыдущую кнопку в моем приложении. Когда нажата next
и если текущий урок имеет следующий запрос контента, то он должен дать следующий идентификатор контента. Если у него нет следующего контента, он должен перейти к следующему уроку и первому контенту.
Порядковый номер для контента - seq_no, а для урока - lesson_no. Кроме того, если в текущем уроке имеется оценка_идейства при следующем щелчке, он должен дать оценку_после того, как будут выполнены все идентификаторы контента.
При предыдущем щелчке, если content_id является первым содержимым этого урока, тогда при предыдущем щелчке он должен давать оценку_для предыдущего урока (только если оценка_идя не равна нулю - в противном случае он должен перейти к содержанию).
Я сделал ниже запрос, который будет переходить к содержанию и уроку, но я не могу сделать это дляvaluation_id.
Следующий щелчок :
SELECT c.course_id, c.lesson_id, c.content_id, c.seq_no, l.lesson_no
FROM (
SELECT cl.lesson_no AS curr_lesson_no, cc.seq_no AS curr_seq_no
FROM course_content cc
JOIN lesson cl ON cl.lesson_id = cc.lesson_id
WHERE cc.content_id ='" . $content_id . "'
ORDER BY cl.lesson_no, cc.seq_no
LIMIT 1
) q
JOIN lesson l ON l.lesson_no >= q.curr_lesson_no
JOIN course_content c ON c.lesson_id = l.lesson_id
WHERE c.course_id =1
AND (
c.seq_no > q.curr_seq_no
OR l.lesson_no > q.curr_lesson_no
)
ORDER BY l.lesson_no, c.seq_no
LIMIT 1
Предыдущий щелчок :
SELECT c.course_id, c.lesson_id, c.content_id, c.seq_no, l.lesson_no
FROM (
SELECT cl.lesson_no AS curr_lesson_no, cc.seq_no AS curr_seq_no
FROM course_content cc
JOIN lesson cl ON cl.lesson_id = cc.lesson_id
WHERE cc.content_id ='" . $content_id . "'
ORDER BY cl.lesson_no, cc.seq_no DESC
LIMIT 1
) q
JOIN lesson l ON l.lesson_no <= q.curr_lesson_no
JOIN course_content c ON c.lesson_id = l.lesson_id
WHERE c.course_id =1
AND (
c.seq_no < q.curr_seq_no
OR l.lesson_no < q.curr_lesson_no
)
ORDER BY l.lesson_no, c.seq_no DESC
LIMIT 1