2010-05-07 87 views
2

我對concat和MySQL4的加入有些迷惑。這裏是我遇到問題的地方。 我有兩個表...MySQL concat question

person 

id, fname, lname, city, state, zip 


capital 

state, city 

我需要生成每個所有國家和人數(從人表)。喜歡的東西....

AK | 5 

AL | 7 

AZ | 0 

等等等等 所有國家都在首都表中列出,但有可能會像AZ的狀態是沒有人。

任何意見,將不勝感激。 我很少被要求做任何MySQL相關的事情,我很難過。

露西

回答

1
SELECT CONCAT(state, ' | ', CAST(count(*) AS CHAR)) 
FROM  person 
GROUP BY state 

按照更新,以獲取國0人數:

解決方案1:

SELECT CONCAT(state, ' | ', CAST(count(*) AS CHAR)) 
FROM  person 
GROUP BY state 
UNION 
SELECT CONCAT(state, ' | 0') 
FROM  capital 
WHERE NOT EXISTS 
     (SELECT 1 FROM person WHERE capital.state = person.state) 

解決方案2:2的使用outer join表上的狀態,並在外部連接結果上按狀態進行分組。

+0

我認爲這是因爲有一些州有0人,這將顯示爲AZ | 0.我編輯了這個問題,並感謝您的意見。對此,我真的非常感激。 – 2010-05-07 02:04:16

+0

@Lucy - 更新 – DVK 2010-05-07 02:19:41