Справка с SQL-оператором (СОЕДИНЕНИЕ)

Я испытываю некоторые затруднения из-за SQL-оператора, которые должны найти число студентов, посещающих курс. Моему взгляду Проектирования баз данных нравится это:

Курс таблицы: идентификатор | course_name

Студент таблицы: идентификатор | имя

И соединить два many-many отношения у меня есть таблица:

Таблица course_student: идентификатор | course_id | student_id

То, что я хочу, должно узнать, сколько студентов посещает курс под названием "Проектирование баз данных". Я знаю, что идентификатор равняется "1", но скажем, то, что я не сделал, знало, как мой SQL-оператор будет похож?

Я попробовал несколько различных операторов различными соединениями для первого выбора корректного идентификатора из таблицы курса, где именем является "Проектирование баз данных", и затем я должен искать в своей course_student таблице, где course_id равняются основанному идентификатору (в этом случае 1) и где весь student_id подключен к этому идентификатору.

Я знаю, что это - немного сложное описание, поэтому скажите мне, если я должен объяснить это лучшим способом.

Спасибо Mestika

8
задан Mestika 11 March 2010 в 14:06
поделиться

3 ответа

Вы можете попробовать что-нибудь вроде

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 присоединение меньше .

9
ответ дан 5 December 2019 в 18:58
поделиться

немного другой стиль, но те же результаты

выберите COUNT (cs.student_id) как счетчик из Курса c, course_student cs где c.id = cs.course_id и c.course_name = 'Database Design'

0
ответ дан 5 December 2019 в 18:58
поделиться
SELECT count(a.id)
FROM Course a
INNER JOIN Course_Student b
ON a.id = b.course_id
WHERE a.course_name = 'Database Design'
0
ответ дан 5 December 2019 в 18:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: