0

Usersデータベース、Postsデータベース、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"

しかし、2つの問題がありGROUP_CONCAT(PostPermission.permission)ます。すべての投稿について、すべての権限値を取得します。私が置くGROUP_CONCAT(DISTINCT PostPermission.permission)と、最初にキャッチされるように順序付けられた0と1のみが取得されます...

投稿と一致したPostPermissionsの最後の行のみを処理する方法はありますか(すでに注文されているため)?

4

0 に答える 0