У меня есть проблема, в которой мне нужно уметь подсчитывать количество действий, которые зарегистрировал ребенок. На данный момент у меня есть это:
SELECT child_fname, activity_id
FROM Child
LEFT JOIN Activity
ON Activity.ActivityID=activity.activity_id
ORDER BY Child.child_fname;
и мои таблицы таковы:
Детский стол
Деятельность
ChildActivity
Я ищу что-то вроде этого
Я попытался использовать JOIN, но мой запрос не обновляется для новых данных
Это то, что я думаю, что ты хочешь
SELECT child_fname as Name, count(activity_id) as 'Number of Activities'
FROM Child
LEFT JOIN ChildActivity
ON ChildActivity.child_id=Child.child_id
GROUP BY Child.child_id
ORDER BY COUNT(activity_id) DESC;
Дело в том, что вы хотите присоединиться к Child
with ChildActivity
и group by Child
, так что для каждой записи в Child
вы получаете количество действий.
Использование INNER JOIN
SELECT Child.child_firstname, COUNT(Activity.activity_id)
FROM Child
INNER JOIN Activity ON Activity.activity_id=ChildActivity.activity_id
INNER JOIN ChildActivity ON ChildActivity.child_id=Child.child_id
ORDER BY Child.child_firstname;
Ps: проверьте имена столбцов и таблицы, пожалуйста.
Пример SQL Inner-join с 3 таблицами?
JOIN
не «обновляет новые данные»?