0
Я хочу получить начальное время, но оно не должно находиться между начальным и конечным временем (выборка с помощью ссылки на другую таблицу). Я пробовал, но я получаю ошибку. Может ли кто-нибудь помочь мне в этом?Выберите время начала между временем начала и окончания
SELECT DISTINCT right(start_time,7) AS st_time
FROM Session_Info
WHERE CourseName = 'Java'
AND (right(start_time,7) NOT IN BETWEEN
(SELECT right(start_time,7)
FROM Session_Info
WHERE Session_Id IN
(SELECT Session_Id
FROM sessions
WHERE UserId='a')) AND
(SELECT right(end_time,7)
FROM Session_Info
WHERE Session_Id IN
(SELECT Session_Id
FROM sessions
WHERE UserId='a')))
Также я повторно использовать тот же запрос, как (выберите session_id из сессий, где UserId = «а»), как хранить его в переменной?
Какую ошибку вы получаете? Кроме того, пара комментариев - «in between» - недействительный синтаксис; и обычно вам следует использовать операторы 'join', а не' in', производительность вашего запроса будет сильно отличаться. – theMayer
Получение неправильного синтаксиса рядом с – user3273950
Ключевое слово 'BETWEEN' - это когда вы сравниваете одно (скалярное) значение с двумя другими одиночными значениями. У вас неправильное использование ключевых слов, смешанных с неправильным использованием подзапросов, которые скорее всего вернут список/набор информации вместо одного значения. Возможно, вы можете четко указать, какие данные вы хотите, и люди могут написать какой-нибудь SQL, который работает? Также сообщите нам, какую базу данных вы используете. –