2013-10-31 201 views
0

我正在嘗試按升序從每個城市中獲取計數數量。但我得到的錯誤是子查詢返回多行。例如:一張表包含所有的城市,州和pincode。在另一個表格中,我們將列出具有相應城市的用戶記錄列表。所以我試圖把每個城市的用戶數量都計算在內。子查詢返回多個行 - Mysql

EG:表A

City State Pincode 
ABC TN 600001 
ABD TN 600001 
ABE KA 500001 
ABF KA 500002 
ABG KA 500003 
CDE KL 500004 
CDF KL 500004 

表B

Userid Answer 
1  ABC 
2  ABC 
3  ABD 
4  ABD 
5  ABD 
6  ABD 
7  ABE 
8  ABE 
9  ABD 
10  ABC 

SQL查詢:

SELECT count(a.answer) from table b as a where a.answer=(select distinct(b.city) from table a as b); 

所以我得到的子查詢返回不止一行。任何人都可以幫助我解決這個問題,並且對學習SQL Query有很大的幫助。

+0

將你的'='改爲'IN',這樣你就可以得到答案在哪裏子查詢 – NoLifeKing

回答

0

試試這個

select count(*) as cityCount, answer 
from B inner join A on B.answer = A.city group by answer 
+0

謝謝naveen goyal :) – sabarisan

0

我想你不知道如何使用AS關鍵字:這是使別名,你不需要在這裏。

您正在尋找的GROUP BY聲明

如果你希望所有的城市信息+由市答案的數量,你可以這樣做:

SELECT count(b.Answer) as count_answer, City, State, Pincode 
FROM table b join a on a.City=b.Answer 
GROUP BY City 

看到MySQL文檔以獲得更多關於這一點; )