@jakblack377

Как посчитать для каждой строки таблицы количество вхождений этой строки в другую таблицу?

Есть две таблицы course и history
В таблице course: id и name
В таблице history: id, course_id, status
Нужно для каждой строчки course посчитать количество строк в history
На выходе должно быть
Результат
5eee03f54df62769124518.png

Сейчас имею такой вариант:
SELECT c.`name` AS course_name, COUNT(h.id) AS `quantity`
FROM `course` c
JOIN `history` h ON(h.course_id = c.course_id)
WHERE h.`status` = 1
GROUP BY c.`course_id`
  • Вопрос задан
  • 1747 просмотров
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT name AS course_name, COUNT(history.id) AS quantity
  FROM course
    LEFT JOIN history ON course_id = course.id AND status = 1
  GROUP BY name
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@jakblack377 Автор вопроса
Коль задачей было для каждой записи в таблице Course посчитать количество вхождений в History, причём нули также должны были присутствовать в ответе от базы, то запрос должен выглядеть следующим образом:
select c.`name` AS course_name,  
       (select COUNT(*) from history where history.`course_id` = c.`course_id` AND history.`status` = 1) as quantity
from course c
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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