Без Результатов В Выполнении решения SQL INNER JOIN

Моя проблема - следующая, я нуждаюсь в основных данных, как это имя, фамилия, особенность и количество квалификаций, которые были у студента.

ЗАМЕТЬ: Квалификации - хорошие, регулярные и дьявол и он не считается с числами для того, чтобы они учли.

ПРИМЕР

NOMBRE  | APELLIDO | ESPECIALIDAD | CANT
PEPITO  | PEREZ    | MEDICINA     | 10
JUANITO | RAMIREZ  | MEDICINA     | 8

РЕШЕНИЕ

SELECT 
     estudiante.nom_estudiante
    ,estudiante.ape_estudiante
    ,especialidad.id_especialidad
    ,especialidad.descripcion_especialidad
    ,count(calificaciones.resultado_calificacion) AS cant
FROM estudiantes
INNER JOIN especialidad ON (estudiante.id_especialidad = especialidad.id_especialidad)
INNER JOIN calificaciones ON (estudiantes.id_calificacion = calificacion.id_calificacion)
WHERE especialidad.id_especialidad = 1 --(Ej: "MEDICINA")
GROUP BY estudiante.nom_estudiante
    ,estudiante.ape_estudiante
    ,especialidad.id_especialidad
    ,especialidad.descripcion_especialidad.

ПРОБЛЕМА

Результаты, которые я хочу получить, состоят из-за особенности и также большой важности в том, чтобы знать, сколько квалификаций имел каждый студент этой особенностью.

В ЗЕРНЫШКО

У особенности "МЕДИЦИНЫ" есть 50 студентов и решение только показывает мне результат, если я прекращаюсь count(calificaciones.resultado_calificacion) AS cant и INNER JOIN calificaciones ON (estudiantes.id_calificacion = calificacion.id_calificacion) ты показываешь мне 50 результатов, но без количества квалификаций из-за каждых студентов тогда я не знаю, что проблема происходит.

1
задан 20.01.2017, 18:02
0 ответов

Я понимаю, что у студента могут быть квалификации, для этого случая лучшее состоит в том, чтобы использовать LEFT JOIN в момент прикрепления квалификаций с консультацией:

SELECT estudiante.nom_estudiante
    ,estudiante.ape_estudiante
    ,especialidad.id_especialidad
    ,especialidad.descripcion_especialidad
    ,count(calificaciones.resultado_calificacion) AS cant
FROM estudiantes
INNER JOIN especialidad ON (estudiante.id_especialidad = especialidad.id_especialidad)
LEFT JOIN calificaciones ON (estudiantes.id_calificacion = calificacion.id_calificacion)
WHERE especialidad.id_especialidad = 1 --(Ej: "MEDICINA")
GROUP BY estudiante.nom_estudiante
    ,estudiante.ape_estudiante
    ,especialidad.id_especialidad
    ,especialidad.descripcion_especialidad
2
ответ дан 03.12.2019, 17:36