LEFT JOIN不适用于count

时间:2012-09-25 07:48:33

标签: sql count group-by ms-access-2007 left-join

我的查询有问题:

SELECT table1.Name,
       COUNT(*)  
FROM table1
LEFT JOIN table2 ON table2.Name_all = table1.Name
GROUP BY table1.Name

它显示并计算table1中的名称。我想加入table2中不存在于table1中的所有名称。

也许有人知道我做错了什么?

提前致谢

3 个答案:

答案 0 :(得分:1)

根据您的描述,您似乎就是这个,这是一个与table1名称不匹配的name_all列表。

SELECT table2.Name_all
FROM table2
LEFT JOIN table1 ON table2.Name_all = table1.Name
WHERE table1.Name Is Null

如果您还需要计数,可以说:

SELECT table2.Name_all, Count(table2.Name_all) AS CountOf
FROM table2 
LEFT JOIN table1 ON table2.Name_all= table1.Name
WHERE table1.Name Is Null
GROUP BY table2.Name_all;

答案 1 :(得分:0)

试试这个

此查询将从表1和表2中获取通用名称。它还将从表2中获取表1中不存在的名称。

SELECT table1.Name,
       table2.Name,
       COUNT(*)  
FROM table2  
LEFT JOIN table1 
    ON table2.Name_all = table1.Name
GROUP BY table1.Name, table2.Name

如果有效,请告诉我。

答案 2 :(得分:0)

我会做一个简单的in检查

SELECT table1.Name,
FROM table1
WHERE table1.Name In (SELECT table2.Name_all FROM table2)
GROUP BY table1.Name

还有其他方法,但没有更多信息,这是一个简单的方法t