Возвращаемое значение в SQL процедуре

У меня есть процедура, которая должна вернуть заголовок, и оценку

CREATE PROCEDURE `avg_procedure`(IN first_name VARCHAR(150), OUT title VARCHAR(150),  OUT mark DOUBLE)
BEGIN
        SELECT title, avg(mark) mark FROM student_marks sm 
        JOIN student s ON sm.student_id = s.id
        JOIN  subject sub ON sub.id = sm.subject_id
        WHERE s.first_name = first_name group by title;
END

Но почему-то у меня out параметры всегда 0, хотя сам запрос возвращает нужные значения


Ответы (1 шт):

Автор решения: Akina
CREATE PROCEDURE avg_procedure (IN  first_name VARCHAR(150), 
                                OUT title VARCHAR(150),  
                                OUT mark DOUBLE)
SELECT title, avg(mark)
INTO title, mark   -- Отправить результаты в OUT-переменные
FROM student_marks sm 
JOIN student s ON sm.student_id = s.id
JOIN  subject sub ON sub.id = sm.subject_id
WHERE s.first_name = first_name 
GROUP BY title;


→ Ссылка