Я пытаюсь имитировать запрос (для академической цели)Ошибка при попытке имитировать пересечение
(select course_id from section where semester = 'Spring' and year = 2010)
intersect
(select course_id from section where semester = 'Fall' and year = 2009)
успешно имитировали с
select t.course_id from section t, section s where s.course_id = t.course_id and
s.semester = 'Spring' and s.year = 2010 and t.semester = 'Fall' and t.year = 2009;
и когда я попробовал эти,
select t.course_id from section t, section s where s.course_id = t.course_id and
(s.semester, s.year, t.semester,t.year) in ('Spring',2010,'Fall',2009);
ошибка в скобках после
in
predica т.е (согласно строке и колонке , указанной в ошибке), ошибка ORA-00920: Недопустимый реляционная оператор 00920. 00000 - "неверный оператор отношения"
Затем я попытался
select t.course_id from section t, section s where
s.course_id = t.course_id and (s.semester,s.year) = ('Spring',2010)
and (t.semester, t.year) in ('Fall',2009);
select t.course_id from section t, section s where
s.course_id = t.course_id and ((s.semester,s.year) in ('Spring',2010))
and ((t.semester, t.year) = ('Fall',2009));
с различной комбинацией in
и =
получать ту же ошибку в круглых скобках после первого in
или =
есть ли предел в м атрибуты для (..) in/= (...)
или использование одной и той же таблицы вызывает эту или некоторые другие причины?
Использование Oracle 12c.
Запятая присоединиться, или CROSS JOIN, это не то же самое, как только JOIN. – Shredderroy
@Shredderroy Я ссылаюсь на 'из раздела t, раздел s, где s.course_id = t.course_id', где соединение выполняется в предложении WHERE. Конечно, без 'WHERE' вы получите декартовское произведение. – lad2025
@ lad2025 вы можете ссылаться на любую книгу, которая обеспечивает глубокие знания SQL, документация оракула слишком продвинута для меня – Sab