SQL - JOIN找不到没有匹配的行

时间:2014-09-02 15:04:25

标签: sql-server tsql sql-server-2008-r2

服务器:SQL Server 2008 R2
语言:T-SQL

我需要收集每台计算机上安装的更新列表。我一般都没有遇到问题,现在除了我还需要查看总计数为零(0)或NULL的机器。

当前查询,它不会返回有0个匹配项的计算机。换句话说,它只返回有匹配的行

SELECT 
    f_assettag, COUNT(DISTINCT f_updateinstalledID) AS f_totalupdatesinstalled 
FROM 
    tb_assets
INNER JOIN 
    tb_updatesinstalled ON f_updateinstalledmachine = f_assettag
GROUP BY 
    f_assettag

编辑:这已经解决了。它不应该使用" INNER"加入。

1 个答案:

答案 0 :(得分:2)

抱歉,帖子不好。我刚刚意识到我正在使用INNER加入。我已将其更改为LEFT连接,它现在可以正常工作。

更新了查询:

SELECT 
    f_assettag, COUNT(DISTINCT f_updateinstalledID) AS f_totalupdatesinstalled 
FROM 
    tb_assets
LEFT JOIN 
    tb_updatesinstalled ON f_updateinstalledmachine = f_assettag
GROUP BY 
    f_assettag