2

我的查询有问题:

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

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

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

提前致谢

4

3 回答 3

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;
于 2012-09-25T16:11:45.397 回答
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

如果这行得通,请告诉我。

于 2012-09-25T07:54:55.510 回答
0

我会做一个简单的in检查

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

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

于 2012-09-25T08:07:23.153 回答