2

我对 concat 和加入 MySQL 4 感到有些困惑。这就是我遇到问题的地方。我有两张桌子...

person

id, fname, lname, city, state, zip


capital

state, city

我需要从每个状态生成所有状态和人数(来自人员表)。就像是 ....

AK | 5

AL | 7

AZ | 0

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

任何意见,将不胜感激。我很少被要求做任何与 MySQL 相关的事情,我很难过。

露西

4

1 回答 1

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张表的外连接,并在外连接结果上按状态分组。

于 2010-05-07T01:46:19.567 回答