Я хочу использовать лимит в (некоррелированном) подзапросе. У меня есть следующие отношения:
- Оценка - это представляет собой тест. Один из столбцов в этой таблице создан идентификатор учителя
- Вопрос - это представляет вопрос. Это имеет отношение 1: n к оценке (оценка содержит 1 или более вопросов)
- Неверный ответ - это неверный ответ, отношение 1: n с вопросом (вопрос имеет 1 или более неправильных ответов)
Я пытаюсь выбрать диапазон оценок (объединенный с их вопросами / неправильными ответами) для данного учителя для использования с веб-службой RESTful с использованием нумерации страниц (т.е. выберите оценки 5 -10 и связанные с ними вопросы / ответы для данного учителя). Тем не менее, я столкнулся с проблемами. Сначала я столкнулся со следующей ошибкой (, КТО УЖЕ УСТРАНЕНО )
java. sql .SQLSyntaxErrorException: эта версия MySQL еще не поддерживает 'LIMIT & IN / ALL / ANY / SOME subquery'
Чтобы исправить это, у меня есть два выбранных гнезда select (как указано во многих сообщениях SO, таких как этот: Получить все Заработная плата сотрудника из таблиц сотрудников с 3-го по величине оклада в MYSQL)
sql Я работаю (с именованным шаблоном jdb c):
SELECT *
FROM test.ASSESSMENT A
LEFT OUTER JOIN test.QUESTION Q ON A.ISBN = Q.ASSESSMENT_ISBN
LEFT OUTER JOIN test.INCORRECT_ANSWER I ON I.QUESTION_SID =
Q.QUESTION_SID
WHERE A.ISBN IN ( SELECT *
FROM ( SELECT ISBN
FROM test.ASSESSMENT
WHERE CREATED_TEACHER_ID = :CREATED_TEACHER_ID
ORDER BY ISBN ASC
LIMIT :LIMIT, :OFFSET
) AS T
)
Исключение (из нижней части трассировки стека):
В синтаксисе SQL имеется ошибка; проверьте руководство, соответствующее вашей MySQL версии сервера, чтобы узнать правильный синтаксис для использования рядом с: CREATED_TEACHER_ID ORDER BY ISBN AS C LIMIT: LIMIT,: OFFSET) AS T)
Пожалуйста, сообщите если у вас есть предложения.