我有一个表格,用于存储用户与项目的关系。这些项目可以使用reftecid进行分组,我需要获得用户关系 - 持续时间和简单查询。
这是我的表rel_user_proj
:
userid / projectid / role / duration (default NULL) / inactuserid (default NULL) / inactstamp (default NULL)
然后我正在尝试这个:
SELECT COUNT( * ) AS total, duration
FROM projects p
JOIN rel_user_proj rup ON p.projectid = rup.projectid
WHERE p.reftecid=26
AND rup.duration IS NOT NULL
GROUP BY duration
LIMIT 0 , 30
我最终需要的是一个列表:
在我当前的查询中,我得到的是:
唯一一个reftecid = 26的项目是2010202,如果我这样做的话:
SELECT * FROM `rel_user_proj` WHERE projectid=2010202
我得到一个具有正确持续时间的UNIQUE行userid = 49。我不明白其他58人在哪里。
有人能帮助我吗?
提前谢谢!
答案 0 :(得分:0)
试试这个:
SELECT COUNT( * ) AS total, duration
FROM projects p
JOIN rel_user_proj rup ON p.projectid = rup.projectid
WHERE p.reftecid=26
AND rup.duration IS NOT NULL
GROUP BY reftecid
LIMIT 0 , 30
我不完全确定持续时间如何在上面发挥作用,但如果你需要所有持续时间的总和,那么你可以做这样的事情:
SELECT COUNT( * ) AS total, sum(duration) AS total_duration
FROM projects p
JOIN rel_user_proj rup ON p.projectid = rup.projectid
WHERE p.reftecid=26
AND rup.duration IS NOT NULL
GROUP BY reftecid
LIMIT 0 , 30