2

私は、MySQL 4 での concat と joins に多少戸惑っています。ここで問題が発生しています。テーブルが二つあります...

person

id, fname, lname, city, state, zip


capital

state, city

私はすべての州とそれぞれから(人物テーブルから)人数を生成する必要があります。何かのようなもの ....

AK | 5

AL | 7

AZ | 0

etc etc すべての州が首都表に記載されていますが、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 に答える