Не могу найти ошибку в SQL запросе!

Из двух таблиц courses и purchaselist, запрос должен вернуть таблицу из двух столбцов. Надо написать запрос, который выводит сумму, сколько часов должен в итоге проучиться каждый студент (сумма длительности всех курсов на которые он подписан). В результате запрос возвращает две колонки: Имя Студента — Количество часов.

Таблица courses

name duration
Мобильный разработчик с нуля 10
Веб-разработчик c 0 до PRO 10
Python-разработчик с нуля 4
PHP-разработчик с 0 до PRO 3
Java-разработчик 5

Таблица purchaselist

student_name course_name
Амбражевич Порфирий Мобильный разработчик
Жариков Афанасий Мобильный разработчик
Бойков Максим Мобильный разработчик
Гайденко Илья Мобильный разработчик
Ядрихинский Егор Java-разработчик
Амбражевич Порфирий Java-разработчик
Жариков Афанасий Java-разработчик
Бойков Максим Python-разработчик
Гайденко Илья Python-разработчик
Ядрихинский Егор Python-разработчик
Амбражевич Порфирий Python-разработчик
Жариков Афанасий Веб-разработчик
Бойков Максим PHP-разработчик
Гайденко Илья PHP-разработчик
Ядрихинский Егор PHP-разработчик

Я написал следующий запрос:

SELECT student_name AS "Имя Студента", SUM(duration) AS "Количество часов"
FROM (SELECT student_name, course_name AS name, duration FROM purchaselist, courses) AS s;

Вместо таблицы выводится одна строка!


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

Автор решения: MaxDown

SQL

SELECT
   P.student_name,
   SUM(C.duration)
FROM purchaselist P
JOIN courses C ON C.name = P.course_name
--JOIN courses C ON C.name LIKE P.course_name
GROUP BY P.student_name

Тут уже от Вашей задачи зависит, по данным не понятно. Либо курсы равны названиям, либо содержат.

→ Ссылка