select r.index, sum(c.points)
from records r join exams e2 on r.index = e2.index
join courses c on c.id_course = e2.id_course
where not exists (select *
from required_courses rs
where rs.id_studie = r.id_studie
and not exists (select *
from exams e
where e.id_course = rs.id_course
and r.index = e.index
and score>5))
and score>5
group by index;
У меня есть этот запрос. Я знаю, что он делает, но не знаю, как это сделать.выбрать ... не существует не существует запрос
У меня есть релятивно большая база данных с 16 таблицами, но используйте только 4 в этом запросе.
Используемые таблицы:
- RECORDS (студентов) [(. Основные пр) индекс, имя, фамилия, ... (. Ключ для), id_studie (1)]
- ЭКЗАМЕНЫ [индекс (студентов) (рк), id_course (рк), ..., оценка (2), application_status]
- КУРСЫ [id_course (рк), ..., указывает]
- REQUIRED_COURSES [id_studie (Ф.К.), id_course (fk), ...]
(1) Я не знаю лучше wo rd на английском языке. Когда на каком-то факультете есть классы информатики, математики, физики и т. Д. Информатика - одна студия. (2) Очки идут от 5 до 10. 10 лучше. Для прохождения требуется не менее 6.
- Найти всех студентов, сдавших все необходимые экзамены на студиях. Печать индексов и количества точек.
Мой вопрос: может ли это объяснить, как это работает простыми словами?
Я не понимаю, не существует & не существует часть.
Извините за мой плохой английский.
Я думаю, что эта статья Джо Селко может помочь вам: [Разделение мы стоим: SQL реляционного отдела] (https://www.simple-talk.com/sql/t-sql-programming/divided-we- stand-the-sql-of-relational-division /) – jpw
Это ** действительно ** полезно. Большое спасибо. Я не знал, что это называется разделением. – Nemanja