获取其他表中没有记录的所有对象

获取其他表中没有记录的所有对象

问题描述:

我对sql很陌生,我试图获取所有其他表中没有记录的项目。例如;有许多项目和项目有很多来源,但有些项目根本没有任何来源。我只想检索在其他表中没有任何记录的项目......这是我尝试的代码,但它仍然给我一些有源代码的项目。任何人都可以帮助我吗?谢谢!获取其他表中没有记录的所有对象

SELECT   
        p_Project.Project_ID as Id 
        , p_Project.ProjectNum 
        , p_Project.ProjectName 
        , p_Project.Client_ID 
        , p_Project.Industry 
        , p_Project.ProjectStatus 
        , p_Project.EffectiveDate 
        , p_Project.ProjectOrigination 
        , p_Project.ProjDateClosed 
        , p_Project.PrimaryMaterial 
        , p_Project.PrimaryService 
        , p_Project.PrimarySource 
        , p_Project.ProjectCategory 
        , p_Client.Client_ID as Id 
        , p_Client.ClientName 
      FROM p_Project 
       LEFT OUTER JOIN 
        p_Client ON p_Project.Client_ID = p_Client.Client_ID 
      WHERE p_Project.Project_ID IN ( SELECT p_Project.Project_ID 
           FROM p_Project 
           LEFT OUTER JOIN p_Client ON p_Project.Client_ID = p_Client.Client_ID WHERE p_Project.Project_ID IN (SELECT p_Project.Project_ID as Id FROM p_Project WHERE p_Project.ProjectStatus ='active') AND p_Project.Project_ID IN (SELECT p_Project.Project_ID as Id FROM p_Project LEFT OUTER JOIN p_Project_Pricing ON p_Project.Project_ID = p_Project_Pricing.Project_ID WHERE ( p_Project_Pricing.SourceCode IS NULL OR p_Project_Pricing.SourceCode LIKE N'') AND (p_Project.PrimarySource IS NULL OR p_Project.PrimarySource LIKE N'')) 
           GROUP BY p_Project.Project_ID, p_Client.ClientName, p_Project.ProjectName, p_Project.ProjectNum 
           ORDER BY p_Client.ClientName, p_Project.ProjectName, p_Project.ProjectNum 
           OFFSET (0) ROWS FETCH NEXT (25) ROWS ONLY) 
+0

请考虑在格式化文本中添加样本表数据和预期结果。 – TheGameiswar

请尝试以下操作。

select proj.* from [yourprojtable] proj 
left join [yoursourcetable] src 
on proj.projid = src.projid 
where src.projid is null 

在您的查询中,尝试将where条件更改为'where P_Client.Client_id is null'。

+0

谢谢!这真的对我有用! – BYG

+0

@BYG如果你觉得这个有用,你也可以接受这个答案。 – Coder1991