MySQL concat问题

时间:2010-05-07 01:44:30

标签: mysql concat summary

我对concat加入MySQL有点神秘,加入MySQL 4.这就是我遇到问题的地方。 我有两张桌子......

person

id, fname, lname, city, state, zip


capital

state, city

我需要从每个州生成所有州和人数(来自人员表)。像......那样......

AK | 5

AL | 7

AZ | 0
等等 所有州都列在大写表中,但可能有像AZ这样没有人的州。

任何建议都将不胜感激。 我很少被要求做任何与MySQL有关的事情而且我很难过。

1 个答案:

答案 0 :(得分: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,并在外部联接结果上按状态分组。