Mysql:使用最后一个Left Join结果过滤主查询

时间:2012-12-28 20:10:49

标签: mysql join group-concat

我有一个用户数据库,一个帖子数据库和一个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的最后一行(因为它们已经订购)?

0 个答案:

没有答案