Я испытываю некоторые затруднения из-за SQL-оператора, которые должны найти число студентов, посещающих курс. Моему взгляду Проектирования баз данных нравится это:
Курс таблицы: идентификатор | course_name
Студент таблицы: идентификатор | имя
И соединить два many-many отношения у меня есть таблица:
Таблица course_student: идентификатор | course_id | student_id
То, что я хочу, должно узнать, сколько студентов посещает курс под названием "Проектирование баз данных". Я знаю, что идентификатор равняется "1", но скажем, то, что я не сделал, знало, как мой SQL-оператор будет похож?
Я попробовал несколько различных операторов различными соединениями для первого выбора корректного идентификатора из таблицы курса, где именем является "Проектирование баз данных", и затем я должен искать в своей course_student таблице, где course_id равняются основанному идентификатору (в этом случае 1) и где весь student_id подключен к этому идентификатору.
Я знаю, что это - немного сложное описание, поэтому скажите мне, если я должен объяснить это лучшим способом.
Спасибо Mestika
Вы можете попробовать что-нибудь вроде
SELECT COUNT(cs.student_id)
FROM Course c INNER JOIN
course_student cs ON c.id = cs.course_id
WHERE c.course_name = 'Database Design'
Вам не нужно присоединяться к таблице "Студенты", поскольку у вас уже есть идентификатор в таблице course_student, поэтому на 1 присоединение меньше .
немного другой стиль, но те же результаты
выберите COUNT (cs.student_id) как счетчик
из Курса c, course_student cs
где c.id = cs.course_id
и c.course_name = 'Database Design'
SELECT count(a.id)
FROM Course a
INNER JOIN Course_Student b
ON a.id = b.course_id
WHERE a.course_name = 'Database Design'