【发布时间】:2017-08-16 13:23:23
【问题描述】:
试图让这个mysql 查询工作。
解释:有两张表,一张包含所有带有 org id 列的项目,第二张包含与项目表相关的列 projectid 的所有活动。我想计算活动表中具有用户 ID 并且活动为 1 的所有活动。 但棘手的部分来了,我无法工作。它不会收集活动表中缺少的项目,并以计数 0 显示这些项目。我想显示与 bo 中唯一 projectid 对应的所有项目
SELECT p1.`id` AS projectid ,count(a1.`id`) AS activitiescount ,a1.`userid` AS userid ,p1.`orgid` AS orgid
FROM `projects` AS p1
LEFT JOIN `activities` AS a1
ON p1.`id`=a1.`projectid`
WHERE p1.`orgid`=3
AND a1.`userid` = 26
AND a1.`active`=1
OR a1.`id` IS null
GROUP BY p1.`id`
ORDER BY p1.`name` DESC
给予:
如您所见,例如 6 和 2 是不正确的。 请帮忙。谢谢。
【问题讨论】:
-
将 Activity 的任何限制移动到加入本身。否则,左连接的行为类似于内连接;空值被消除,因为它们不是用户 ID 26 和活动 1。
标签: mysql