powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Посчитать количество пользователей, применив фильтрацию по нескольким таблицам (left join)
3 сообщений из 3, страница 1 из 1
Посчитать количество пользователей, применив фильтрацию по нескольким таблицам (left join)
    #39137950
moralez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица user.
Есть таблица site (user._id = site.userId)
Есть таблица table1 (table1.siteId = site._id)
Есть таблица table2 (table2.userId = user._id)

Нужно посчитать количество пользователей по заданным фильтрам. Фильтры могут быть по разным таблицам.
Например такие фильтры: site.removed = 0, site.status > -1, u.isAdmin = 0.

Делаю такой запрос:

SELECT COUNT(*) AS countReg
FROM (
SELECT COUNT(u._id)
FROM user `u`
LEFT JOIN site `s` ON (u._id = s.userId)
LEFT JOIN table1 `t1` ON (t1.siteId = s._id)
LEFT JOIN table2 `t2` ON (t2.userId = u._id)
WHERE (u.isAdmin = 0 AND s.removed = 0)
GROUP BY u._id) AS dd

Но, как я понимаю, в выборку не попадают пользователи, у которых нет вообще ни одного сайта, а их надо учитывать.
Как правильно составить запрос?
...
Рейтинг: 0 / 0
Посчитать количество пользователей, применив фильтрацию по нескольким таблицам (left join)
    #39138002
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moralezв выборку не попадают пользователи, у которых нет вообще ни одного сайта, а их надо учитывать.
Как правильно составить запрос?
Правильно связать таблицы. Для чего надо не запрос писАть, а карандашом на бумаге нарисовать таблицы и связи - и сразу станет видно, какие таблицы левее, а какие правее, и в каком порядке.
...
Рейтинг: 0 / 0
Посчитать количество пользователей, применив фильтрацию по нескольким таблицам (left join)
    #39138005
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moralezв выборку не попадают пользователи, у которых нет вообще ни одного сайта
Поскольку таблица user самая правая - из неё в выборку попадают все записи, и пофиг, чего там где нету.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Посчитать количество пользователей, применив фильтрацию по нескольким таблицам (left join)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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