我有一个用户数据库、一个帖子数据库和一个 PostPermissions 数据库。
数据库方案(您需要知道才能理解)是这样的:
邮政:
id :int(11) | description :varchar(255) | creator_user_id :int(11)
发布权限:
id :int(11) | post_id :int(11) | entity_id :int(11) | permission :tinyint(1) (bool) | orderby tinyint(4)
因此,在 PostPermissions 中我们可以拥有不同类型的权限,但这已经奏效了。
我在我的 MySQL Query 上做了这样的事情:
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(因为它们已经被排序)?