合并2个查询

时间:2012-03-05 23:58:53

标签: sql join

我有两个想要结合的问题 有4个表链接。 用户,组,政策,来源

第一次查询我得到具有相应政策ID的用户。

第一次查询:

Select users.ID as UserID,users.Username,   
policy.ID as PolicyID,policy.PolicyName 
from users join groups on group.ID = user.groupID_FK 
join policy on users.policyID_FK = policy.ID

第二次查询:这里我需要匹配policyID_FK并应用路径。源类型应为0,可能没有该policyID_FK的数据源类型o的条目。

Select Path, policyID_FK from source
WHERE SourceType = 0 and policyID_FK  = 1

这里不是给出policyID_FK = 1,而是想用上面的查询加入这个查询。

请帮忙。我知道我不太清楚,但请问你是否理解不了。

由于

2 个答案:

答案 0 :(得分:2)

Select users.ID as UserID,users.Username, policy.ID as PolicyID,policy.PolicyName, source.Path
from users join groups on group.ID = user.groupID_FK 
   join policy on group.policyID_FK = policy.ID
   left join source
      on group.policyID_FK = source.policyID_FK
      and SourceType = 0 

当您知道右表可能没有匹配的记录时,请使用左连接。将您在连接旁边的任何过滤器附加到左连接过滤器,因为如果您将它放在要删除要检索的行的位置。

答案 1 :(得分:1)

这是你想要的吗?

Select  users.ID as UserID,
        users.Username,   
        policy.ID as PolicyID,
        policy.PolicyName,
        source.Path
FROM    users INNER JOIN groups 
            ON group.ID = user.groupID_FK 
        INNER JOIN policy 
            ON users.policyID_FK = policy.ID
        INNER JOIN source 
            ON users.policyID_FK = source.policyID_FK
-- You can add conditions here