2016-09-08 1 views
-4

У меня есть 3 таблицы: COUNTRY, STATE, CITYRetrive отсчеты двух столбцов из двух diffrent таблицы с третьей таблицы, используя запрос с соединением в SQL

Это моя Country таблица с двумя столбцами:

CountryID, Name 

Это мой State стол:

state table

Это мой City стол:

city table

Я хочу, чтобы получить количество государств и городов в соответствии с country таблицы с помощью запроса присоединиться.

+2

Походит домашнее задание. Что вы уже пробовали? Что именно вы застряли? –

+0

Текст (отформатирован) вместо изображений. Также покажите нам ожидаемый результат и вашу текущую попытку запроса. – jarlh

+0

в таблице country У меня есть две колонки: «CountryID», «Name». и код страны - первичный ключ. В таблице состояний у меня есть «StateID», «CountryID», «StateName», и у меня есть идентификатор состояния как первичный ключ, а CountryID - как ключ foriegn. В таблице City «CityID», «StateID», CityName ", здесь CityID как основной ключ и StateID - это Forign Key, в результате я хочу, чтобы три куры« CountryId »,« No of States »,« No of city ». –

ответ

0

Пропустив тот факт, что ваш вопрос не спросил хорошо - попробуйте этот запрос, он должен работать для вас:

WITH 
tab_a AS (
SELECT c.countryid, COUNT (s.stateid) AS state_num 
FROM country c 
LEFT JOIN state s ON c.countryid = s.countryid 
GROUP BY c.countryid 
), 
tab_b AS (
SELECT c.countryid, COUNT (cc.cityid) city_num 
FROM country c 
LEFT JOIN state s ON c.countryid = s.countryid 
LEFT JOIN city cc ON s.stateid = cc.stateid 
GROUP BY c.countryid 
) 
SELECT a.countryid, 
     a.state_num, 
     b.city_num 
FROM tab_a a JOIN tab_b b ON a.countryid=b.countryid 
+0

спасибо чувак .... :) –

Смежные вопросы