Platton
@Platton

Как сделать запрос mysql?

Есть 2 таблицы в базе users и groups
c6868126d9584b9bb9542d9bf67dbe5d.jpg

Нужно сделать выборку всех столбцов id, name из таблицы groups, а также вывести количество всех пользователей из таблицы users которые принадлежат к конкретной групе
  • Вопрос задан
  • 268 просмотров
Пригласить эксперта
Ответы на вопрос 4
Defman21
@Defman21
SELECT `g`.`id` g_id, `g`.`name` g_name, COUNT(`u`.`id`) g_count FROM `groups` g LEFT JOIN `users` u ON `g`.`id` = `u`.`user_group`
Ответ написан
rich
@rich
SELECT `id` AS g_id, 
`name` , 
(
SELECT count( * )
FROM `users`
WHERE `users`.user_group = g_id
) AS user_in_group
FROM `groups`
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `u`.`user_group`, `g`,`name`, COUNT(`u`.`user_group`)
    FROM `users` AS `u`
    JOIN `groups` AS `g` ON `g`.`id` = `u`.`user_group`
    GROUP BY `u`.`user_group`
Ответ написан
Platton
@Platton Автор вопроса
SELECT `u`.`user_group`, `g`,`name`, COUNT(`u`.`user_group`)
    FROM `users` AS `u`
    JOIN `groups` AS `g` ON `g`.`id` = `u`.`user_group`
    GROUP BY `u`.`user_group`


Такой вариант прекрасно работает. Но когда в одной из групп нет ни одного пользователя - такая группа перестает отображаться. Подскажите как сделать чтобы отображались все группы даже те в которых нет пользователей?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы