Outsystems中的高级SQL查询

时间:2015-06-25 14:16:03

标签: mysql outsystems

我必须选择用户在给定组织中无权访问的项目列表。

我尝试了这个查询 enter image description here

SELECT {Project}.[Number],{Project}.[Name]

FROM {Project}

INNER JOIN {ProjectParticipant} ON {Project}.[Id]={ProjectParticipant}.[ProjectId]

WHERE {Project}.[Tenant_Id]=@TenantId AND {ProjectParticipant}.[UserId] <> @UserId

GROUP BY {Project}.[Number],
         {Project}.[Name]

ORDER BY {Project}.[Number]

但在此列出了给定组织内的所有项目。我遗漏了一些基本的东西。尝试使用左外连接但没有用。帮帮我

1 个答案:

答案 0 :(得分:2)

看起来您想要获取Project表中的所有行,而ProjectParticipant表中没有给定用户ID的相应行。

这应该可以解决问题:

SELECT {Project}.[Number],{Project}.[Name]
FROM {Project}
WHERE {Project}.[Tenant_Id]=@TenantId
AND NOT EXISTS (
    SELECT * FROM {ProjectParticipant} 
    WHERE {Project}.[Id]={ProjectParticipant}.[ProjectId]
    AND {ProjectParticipant}.[UserId] = @UserId
)
ORDER BY {Project}.[Number]