SQL: выберите запрос без вложенного запроса - PullRequest
0 голосов
/ 26 августа 2011

У меня есть следующие входные данные, есть две таблицы

create table Courses(
id number(19) not null,
name varchar(100),
);

create table Students (
id number (19) not null,
name varchar(100),
course_id number (19) not null,
);

Мне нужно написать запрос для получения всех курсов с количеством учеников, например, более 10 Итак, я написал вариант с вложенным запросомкак это

select distinct courses.name from student, courses where courses.id=student.courses_id and (select count(Students.id) from Students where student.course_id = course.id)  > 10 

!!!Не тестировал, просто написал для этого поста, это пример !!!Итак, у меня вопрос, как написать тот же запрос без вложенного запроса?

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Я бы пошел с

Select c.name, count(s.id) as StudentsCount from Courses c join stundets S on c.id = s.course_id group by c.name having count(s.id) > 10
2 голосов
/ 26 августа 2011

Используйте предложение GROUP BY / HAVING:

SELECT courses.name /*, COUNT(*)*/
FROM student JOIN courses ON courses.id = student.courses_id
GROUP BY courses.id
HAVING COUNT(*) > 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...