SELECT A.id as ActivityId, A.description, T.id, T.title, COUNT(R.*) as reactionCount
FROM activities
LEFT JOIN activitiesReactions as R ON R.activityId = A.id
LEFT JOIN activitiesTags as T ON A.tagId = T.id
Так что в основном мне нужен запрос, который получит все действия, и в то же время НЕ получит реакции на это действие, но получит СЧЕТ реакций, которые находятся в другой таблице, называемой actionsReactions, как мне это сделать ( см. выше запрос, который я имел в виду).
Таким образом, запрос должен вернуть:
array('activityId' => 3, 'description' => 'doing work', 'reactionCount' => 2)
Пример строки:
Activities table:
id | description
3 doing work
4 checking mail
ActivitiesReactions table:
id | activityId | message
1 3 you never do anywork, so that must be bullshit.
2 3 yes I do alot of work!
поэтому теперь он должен возвращать «2» на responseCount, когда я выполняю запрос и выполняю WHERE A.id = 3
SELECT A.id as ActivityId, A.description, COUNT(R.activityId) AS reactionCount
FROM activities
LEFT JOIN activitiesReactions as R
ON R.activityId = A.id
GROUP BY A.id
Это сработало, но responseCount возвращается как * 2, например, если есть 3 реакции, responseCount = 6, 2 реакции, responseCount = 4 и т. Д.