Mysql Subquery - необходимо установить связь между двумя подобными запросами, чтобы подсчитать количество почтовых и почтовых индексов - PullRequest
2 голосов
/ 08 июля 2011

У меня есть небольшая проблема, выясняющая это. У меня есть два запроса, которые мне нужно собрать, и независимо от того, что я пробовал, я всегда получаю ошибку в синтаксисе mysql. Два запроса ниже.

Запрос 1 - это для канадских почтовых индексов

SELECT ta.city, ta.email_address, ta.country_code, COUNT(*)
FROM jos_form_submitteddata_form1 tb
JOIN jos_postalzip_redirect ta ON UPPER(LEFT(tb.FIELD_24, 3)) = LEFT(ta.postal_zip, 3)
WHERE LENGTH(tb.FIELD_24) > 5
GROUP BY ta.city;  

Запрос 2 - это если для почтовых индексов США

SELECT ta.city, ta.email_address, ta.country_code, COUNT(*)
FROM jos_form_submitteddata_form1 tb
JOIN jos_postalzip_redirect ta ON UPPER(tb.FIELD_24) = LEFT(ta.postal_zip, 5)
WHERE LENGTH(tb.FIELD_24) <= 5
GROUP BY ta.city
HAVING ta.country_code = 'US';

Цель состоит в том, чтобы оба этих запроса отображались в одной и той же таблице с правильными значениями

Ответы [ 2 ]

0 голосов
/ 08 июля 2011

Попробуйте использовать оператор UNION.

http://dev.mysql.com/doc/refman/5.0/en/union.html

0 голосов
/ 08 июля 2011

СОЮЗ не делает то, что вам нужно?

SELECT ta.city, ta.email_address, ta.country_code, COUNT(*) 
FROM jos_form_submitteddata_form1 tb 
JOIN jos_postalzip_redirect ta ON UPPER(LEFT(tb.FIELD_24, 3)) = LEFT(ta.postal_zip, 3)
WHERE LENGTH(tb.FIELD_24) > 5 GROUP BY ta.city
UNION
SELECT ta.city, ta.email_address, ta.country_code, COUNT(*) 
FROM jos_form_submitteddata_form1 tb 
JOIN jos_postalzip_redirect ta ON UPPER(tb.FIELD_24) = LEFT(ta.postal_zip, 5) 
WHERE LENGTH(tb.FIELD_24) <= 5 AND ta.country_code = 'US' GROUP BY ta.city
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...