MySQL Concat вопрос - PullRequest
       12

MySQL Concat вопрос

2 голосов
/ 07 мая 2010

Я немного озадачен concat и включаюсь в MySQL 4. Вот где у меня проблема. У меня есть две таблицы ...

person

id, fname, lname, city, state, zip


capital

state, city

Мне нужно сгенерировать все штаты и количество человек (из таблицы персон) из каждого. Что-то вроде ....

AK | 5

AL | 7

AZ | 0

и т. Д. Все государства перечислены в таблице заглавных букв, но может существовать штат, подобный AZ, в котором нет людей.

Любой совет будет оценен. Меня так редко просят сделать что-нибудь связанное с MySQL, и я в тупике.

Lucy

1 Ответ

1 голос
/ 07 мая 2010
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 таблиц в состоянии и группируйте по состоянию в результатах внешнего соединения.

...