2012-09-25 91 views
2

工作,我有我的查詢問題:LEFT JOIN不計

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

它顯示了從表1計算一個名字。我想加入table1中不存在的所有名稱。

也許有人知道我在做什麼錯了?

在此先感謝

+0

你找表2中值,即不存在表1 - 你需要從表1的任何額外的數據? –

+0

不,只有一列 – Juronis

回答

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; 
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 

讓我這個工程。

+0

嗯,不起作用。 – Juronis

+0

因爲在select中沒有表-2的列。我改變了我的查詢。 – Narendra

0

我會做一個簡單的in檢查然後

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

還有其他的方法,但沒有更多的信息,這是一個簡單的方法牛逼