powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / (MySQL) объединить два запроса в один
5 сообщений из 5, страница 1 из 1
(MySQL) объединить два запроса в один
    #38855761
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здрасте!

Есть список городов, в каждом городе есть несколько сайтов. Есть города без сайтов. Нужно вывести все города с количеством сайтов одним запросом (даже если у города нет сайтов).

вывод всех городов
Код: sql
1.
SELECT t1.i FROM `c_city` as t1



вывод статистики по сайтам у городов (условие, что сайт одобренный)
Код: sql
1.
SELECT COUNT(t2.id_site) as cnt, t2.status as status FROM `c_site` as t2 GROUP BY t2.id_city HAVING status = 'approved'



если объединяю запросы через JOIN, то выводятся города только с ненулевыми значениями...
...
Рейтинг: 0 / 0
(MySQL) объединить два запроса в один
    #38855766
однобитныйесли объединяю запросы через JOIN, то выводятся города только с ненулевыми значениями...прочитать про [LET | RIGHT] OUTER JOIN
...
Рейтинг: 0 / 0
(MySQL) объединить два запроса в один
    #38855767
Добрый Э - Эходнобитныйесли объединяю запросы через JOIN, то выводятся города только с ненулевыми значениями...прочитать про [LE F T | RIGHT] OUTER JOIN
...
Рейтинг: 0 / 0
(MySQL) объединить два запроса в один
    #38855773
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да уже почитал, вот так пока что получается, может его еще можно как-то оптимизировать
Код: sql
1.
SELECT t1.i, cnt FROM `c_city` as t1 LEFT JOIN (SELECT t2.id_city, COUNT(t2.id_site) as cnt, t2.status as status FROM `c_site` as t2 GROUP BY t2.id_city HAVING status = 'approved') as t3 ON t1.id_city = t3.id_city
...
Рейтинг: 0 / 0
(MySQL) объединить два запроса в один
    #38855795
однобитный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если точнее то, вот:

Код: sql
1.
SELECT t1.i, cnt FROM `c_city` as t1 LEFT JOIN (SELECT t2.id_city as id_city, COUNT(t2.id_site) as cnt FROM `c_site` as t2 WHERE t2.status = "approved" GROUP BY t2.id_city) as t3 ON t1.id_city = t3.id_city
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / (MySQL) объединить два запроса в один
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]