Приветствую, помогите, пожалуйста, вот с таким вот запросом. Есть база данных, которая состоит из двух таблиц, студентов и курсов. Необходимо построить запрос, который будет вычислять курсы, на которых учится больше студентов, чем на первом курсе. Что-то никак не могу допереть как его построить. Дамп базы: [sql] -- -- Структура таблицы `kurses` -- CREATE TABLE IF NOT EXISTS `kurses` ( `id` int(7) NOT NULL AUTO_INCREMENT, `title` varchar(255) COLLATE cp1251_general_cs NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs AUTO_INCREMENT=6 ; -- -- Дамп данных таблицы `kurses` -- INSERT INTO `kurses` (`id`, `title`) VALUES (1, 'Первый курс'), (2, 'Второй курс'), (3, 'Третий курс'), (4, 'Четвертый курс'), (5, 'Пятый курс'); -- -------------------------------------------------------- -- -- Структура таблицы `students` -- CREATE TABLE IF NOT EXISTS `students` ( `id` int(7) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE cp1251_general_cs NOT NULL, `surname` varchar(255) COLLATE cp1251_general_cs NOT NULL, `patr` varchar(255) COLLATE cp1251_general_cs NOT NULL, `kurs` int(7) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs AUTO_INCREMENT=22 ; -- -- Дамп данных таблицы `students` -- INSERT INTO `students` (`id`, `name`, `surname`, `patr`, `kurs`) VALUES (1, 'Вася', 'Пупкин', 'Пупкинович', 1), (2, 'Петя', 'Баранов', 'Суперович', 1), (3, 'ваыпыв', 'ывапывап', 'апывапыв', 1), (4, 'ывпвы', 'пывп', 'пвап', 1), (5, 'Василий ', 'іваі', 'аіваі', 2), (6, 'віаів', 'аів', 'аіва', 2), (7, 'іва', 'іва', 'іваів', 2), (8, 'віаіва', 'аіва', 'іваів', 2), (9, 'іваів', 'аіва', 'іваів', 2), (10, 'віаіва', 'аіва', 'іваів', 2), (11, 'іваів', 'іва', 'аіва', 3), (12, 'іва', 'аіва', 'ів', 3), (13, 'ів', 'аіваі', 'ваів', 3), (14, 'ваі', 'аі', 'віаів', 4), (15, 'іваів', 'аів', 'аі', 4), (16, 'іваів', 'аів', 'аіва', 4), (17, 'іваіва', 'іва', 'іва', 4), (18, 'іва', 'іваі', 'ваів', 4), (19, 'іваіва', 'іва', 'іва', 4), (20, 'ів', 'аів', 'аіва', 5), (21, 'іва', 'іваів', 'аіва', 5);[/sql] Я пытался сделать это так: [sql]SELECT kurses.title,students.kurs as cny,kurses.id FROM kurses,students WHERE (SELECT COUNT(*) FROM students WHERE kurs>1) GROUP by kurses.title[/sql] Но ничего не получается, так как я никак не могу понять как это реализовать все.
[sql]SELECT k.title, count(s.kurs) as cnt FROM kurses as k LEFT JOIN students as s ON k.id = s.kurs GROUP BY k.id HAVING cnt > (SELECT count(s.kurs) FROM students as s WHERE s.kurs=1 GROUP BY s.kurs);[/sql]