SQL移动SUBSTRING选择INNER JOIN

时间:2017-12-26 20:19:59

标签: sql sql-server inner-join

我有这个查询

SELECT ID,

    SUBSTRING(( SELECT DISTINCT ',' + CONVERT(varchar(10), CC.CompanyId)  
            FROM Company CC 
            INNER JOIN CompanyProducts  NP2 
            ON CC.CompanyId = NP2.CompanyId 
            WHERE NP.CompanyProducts Id = NP2.PrimaryCompanyProducts Id 
                AND NP2.CompanyProducts Id <> NP2.CompanyProducts Id 
            FOR XML PATH('')),2,200000) AS CompanyIdList

FROM CompanyProducts NP

我想将SELECT添加到INNER JOIN中,我将添加到我的select中以检查返回是否为零

它将是这样的

SELECT ID,

    SUBSTRING(( SELECT DISTINCT ',' + CONVERT(varchar(10), CC.CompanyId)  
            FROM Company CC 
            INNER JOIN CompanyProducts  NP2 
            ON CC.CompanyId = NP2.CompanyId 
            WHERE NP.CompanyProducts Id = NP2.PrimaryCompanyProducts Id 
                AND NP2.CompanyProducts Id <> NP2.CompanyProducts Id 
            FOR XML PATH('')),2,200000) AS CompanyIdList,

    CompanyIdCount --this will be null or a real value      

FROM cmp.CompanyProducts NP

INNER JOIN(SELECT DISTINCT A.CompanyProductsId,

            (SELECT DISTINCT ',' + CONVERT(varchar(10), CC.CompanyId)  
                 FROM Company CC 
                 INNER JOIN CompanyProducts  NP2 
                ON CC.CompanyId = NP2.CompanyId 
                 WHERE NP.CompanyProducts Id = NP2.PrimaryCompanyProducts Id 
                AND NP2.CompanyProducts Id <> NP2.CompanyProducts Id ) AS CompanyIdCount


        FROM cmp.CompanyProducts  A
       )E ON NP.CompanyNotificationId =  E.CompanyNotificationId

如果没有记录或1条或更多记录,我怎样才能将内部JOIN变为事件null?感谢

0 个答案:

没有答案