Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP+MySQL+группировка

537
02 марта 2004 года
Cover
87 / / 14.11.2002
Есть у меня три незатейливые таблички:
country(...)
place(country_id,...)
city(place_id,...)

И понадобилось тут мне выбрать все страны, да так, чтобы для каждой страны подсчитать количество территорий (таблица place) и количество городов. Сколько ни бился я с этим майэскюэлем - ничего не выходит.
Могу подсчитать количество городов или количество территорий, но так, чтобы за один запрос и то и другое - не знаю.

Если это можно сделать, то у меня не получается скорее всего из-за непонимания группировки. Отсюда второй вопрос:
Объясните, что значит группировка по нескольким столбцам ?? Ну, т.е. по одонуму столбцу - всё понятно - строки с одинаковыми значениями в этом столбце объеденяются. А вот группировку по двум столбцам я не понимаю.
1.9K
02 марта 2004 года
HabaHaba
172 / / 24.12.2003
Цитата:
Originally posted by Cover
Есть у меня три незатейливые таблички:
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]

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог