Mysql выбрать данные из одной таблицы и количество записей из другой одним запросом

187
15 декабря 2016, 15:45

Привет всем. Мне нужно вывести из бд список городов, а рядом количество зарегистрированных пользователей из каждого города. это можно сделать одним запросом?
Такой запрос выводит города:

SELECT id, name FROM cities ORDER BY id

А этим запросом мы посчитаем количество пользователей в нужном городе:

SELECT COUNT(*) FROM users WHERE city_id=$id //$id - id текущего города

Пробовал объединить так, не получается:

SELECT cities.id, cities.name, COUNT(users.*) as count FROM cities
LEFT JOIN users ON cities.id=users.city_id

Так вообще возможно или я фигню написал, надо двумя запросами?

Answer 1

Как то так:

SELECT COUNT(*), cid, cname FROM
    (SELECT c.id AS cid, c.name AS cname, u.id AS uid FROM cities c
    LEFT JOIN users u ON c.id=u.city_id) newtable
GROUP BY cid, cname
READ ALSO
Count(*) работает не так

Count(*) работает не так

После того, как поставил в запрос COUNT(*) as count, началась выводиться только 1 запись, хотя $data['count'] показывает, что их 3Если же убрать COUNT(*) as count,...

152
Обновить базу один раз

Обновить базу один раз

Вот кодМне нужно, чтобы он обновлял только один раз, а он обновляет каждый раз при обновлении

129
Загрузка файлов на сайт PHP

Загрузка файлов на сайт PHP

Файл загружается через форму а в обработчике вот такой код - файл загружается и на сайт и в базу но ссылка не него косячит - тоесть он не вызывается...

142
MySQL: подписан ли пользователь

MySQL: подписан ли пользователь

Есть 2 таблицы, с юзерами и с теми, на кого подписан юзер

145