我有一个用户数据库,一个帖子数据库和一个PostPermissions数据库。
数据库方案(您需要了解以便了解)是这样的:
发表:
id :int(11) | description :varchar(255) | creator_user_id :int(11)
PostPermissions:
id :int(11) | post_id :int(11) | entity_id :int(11) | permission :tinyint(1) (bool) | orderby tinyint(4)
因此,在PostPermissions中,我们可以拥有不同类型的权限,但这已经有效了。
我在我的MySQL查询中做了类似的事情:
SELECT Post.id
FROM posts as Post
LEFT JOIN post_permissions AS PostPermission
ON Post.id = PostPermission.post_id
WHERE Post.creator_user_id = 4
GROUP BY Post.id HAVING GROUP_CONCAT(PostPermission.permission) like "%1"
但是有两个问题,GROUP_CONCAT(PostPermission.permission)
将为所有帖子检索所有权限值,如果我放GROUP_CONCAT(DISTINCT PostPermission.permission)
它将只检索零和一个由第一个排序的钓到...
有没有办法只处理与帖子匹配的PostPermissions的最后一行(因为它们已经订购)?