0

我有一个用户数据库、一个帖子数据库和一个 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(因为它们已经被排序)?

4

0 回答 0