外部系统中的高级 SQL 查询

Advanced SQL Queries in Outsystems

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

我试过这个查询

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]

但这里列出了给定组织内的所有项目。我缺少一些基本的东西。也尝试使用左外连接但没有用。帮帮我

您似乎想要获取项目 table 中给定用户 ID 的 ProjectParticipant table 中没有对应行的所有行。

这应该可以解决问题:

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]