@Omniverse

SQL-запрос. Как связать данные из трех таблиц?

Здравствуйте.

Продолжение вопроса

Есть таблица country с полями Code(записи типа: RUS, BEL, KAZ) и Region(записи типа: Asia, Europe, Africa). Еще есть таблица city с полями ID, Name(записи типа: Москва, Минск, Пекин) и CountryCode(записи типа: RUS, BEL, KAZ).
Третья таблица countrylanguage с полями CountryCode(такая же как и в city) и Language(название языка)

Как вывести результирующую таблицу, где в одном столбце названия регионов, во втором количество городов в каждом регионе, в третьем - количество языков?
Ну то есть:
Region | Cities | Languages
---------+--------+----------
Europe |... 100 |.....50
Africa ..|..... 80 | .... 70
Asia .....|... 300 | ...110
  • Вопрос задан
  • 2090 просмотров
Решения вопроса 1
@Omniverse Автор вопроса
Переформулировал вопрос. Адрес - Как создать такой SQL-запрос?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
rpsv
@rpsv
делай либо хорошо, либо никак
SELECT a.Region,  COUNT(b.id) as cities, COUNT(c.id) as languages
FROM country AS a
	INNER JOIN city AS b ON a.Code = b.CountryCode
	INNER JOIN countrylanguage AS c ON a.Code = c.CountryCode
GROUP BY country.Region

А вообще связывание лучше по идентификаторам делать
Ответ написан
@kirill-93
SELECT a.Region,  COUNT(b.Name) as cities, COUNT(c.id) as languages
FROM `country` as a 
LEFT JOIN city as b 
LEFT JOIN CountryCode as c
ON a.Code = b.CountryCode 
GROUP BY a.Region
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы