我想优化这个查询,但我似乎无法得到它。任何帮助都比欢迎。这是在一个存储过程中,所以1被一个IN参数替代。一个用户在一个组中的用户数量mysql
表userGroupRelation
userGroupID BIGINT - >外键userGroupID分组表
用户ID BIGINT - >外键的用户表
表文件夹
OWNERID BIGINT - >外键的用户表
postersGroup BIGINT - >外键userGroupID分组表
其他的东西......
SELECT folders.*,COUNT(userGroupRelation.userID) AS users
FROM folders
LEFT JOIN userGroupRelation
ON folders.postingGroupID = userGroupRelation.userGroupID
WHERE folders.ownerID = 1
OR userGroupRelation.userGroupID IN (
SELECT userGroupID FROM userGroupRelation WHERE userID = 1)
GROUP BY folders.folderID;
我基本上想要得到用户可以看到的所有文件夹(无论是因为他拥有它还是因为他在该文件夹的一组海报中)
你可以在http://sqlfiddle.com发表表格结构吗 – 2012-07-19 04:24:01