2010-05-07 50 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