PHP+MySQL+группировка
country(...)
place(country_id,...)
city(place_id,...)
И понадобилось тут мне выбрать все страны, да так, чтобы для каждой страны подсчитать количество территорий (таблица place) и количество городов. Сколько ни бился я с этим майэскюэлем - ничего не выходит.
Могу подсчитать количество городов или количество территорий, но так, чтобы за один запрос и то и другое - не знаю.
Если это можно сделать, то у меня не получается скорее всего из-за непонимания группировки. Отсюда второй вопрос:
Объясните, что значит группировка по нескольким столбцам ?? Ну, т.е. по одонуму столбцу - всё понятно - строки с одинаковыми значениями в этом столбце объеденяются. А вот группировку по двум столбцам я не понимаю.
Цитата:
Originally posted by Cover
Есть у меня три незатейливые таблички:
country(...)
place(country_id,...)
city(place_id,...)
......
И понадобилось тут мне выбрать все страны, да так, чтобы для каждой страны подсчитать количество территорий (таблица place) и количество городов.
......
Если это можно сделать, то у меня не получается скорее всего из-за непонимания группировки.
Есть у меня три незатейливые таблички:
country(...)
place(country_id,...)
city(place_id,...)
......
И понадобилось тут мне выбрать все страны, да так, чтобы для каждой страны подсчитать количество территорий (таблица place) и количество городов.
......
Если это можно сделать, то у меня не получается скорее всего из-за непонимания группировки.
Нет, скорее всего это из за незнания (или неумения пользоваться) соединения таблиц.
Вот, вроде бы, должно работать:
[SQL]
SELECT
c.id,
c.name,
count(p.id) as places,
count(cy.id) as cities
FROM
country c
LEFT JOIN place p ON (c.id=p.country_id)
LEFT JOIN city cy ON (p.id=cy.place_id)
GROUP BY c.id
[/SQL]