[英]Need to convert OUTER JOIN with multiple “AND”
我有想要轉換為Esqueleto的原始sql。 它將所有未通過group_membership
表注冊的用戶ID 1的group
group_membership
。
SELECT *
FROM group
LEFT OUTER JOIN group_membership
ON (group.id = group_membership.group_id AND group_membership.user_id=1)
WHERE group_membership.group_id IS NULL
這是我從不同問題中收集到的答案:
getGroups userId = do
runDB
. E.select
. E.from $ \(group `E.LeftOuterJoin` groupMembership) -> do
E.on $ E.just (group ^. GroupId) E.==. (groupMembership ?. GroupMembershipGroupId) &&.
(groupMembership ?. GroupMembershipUserId) E.==. E.just (E.val userId)
E.where_ $ E.isNothing (groupMembership ?. GroupMembershipGroupId)
return
( group ^. GroupId
, group ^. GroupTitle
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.