Вложенный SELECT - MySQL (219889)
Формулировка задачи:
День добрый!
Я что-то подзабыл как делать вложенный селект
Или нужно джоинами, не запинывайте))))
В общем суть такая, что я генерю для каждого юзера xml файлик, в целом он одинаковый за исключением одного индивидуального поля.
Собственно есть 2 таблицы
1 таблица MARKERS с инфой общей для всех
2 таблица FOLLOWING носит индивидуальный характер
sql такой
собственно не могу сделать для каждой позиции вывод в стиле
Я понимаю, что он записывает результат по нику olezha для каждой записи вот так.
Собственно хотелось бы для каждой записи индивидуальный каунт иметь
Теперь не могу избавиться от дублей(((
id | name | creator_id |
1 | pan africa | olezha |
2 | Rel africa | User2 |
id_user | event_id |
olezha | 1 |
user2 | 1 |
SELECT `id`, `name`, `creator_id`, (SELECT COUNT(id_user) FROM `markers`a,`following`b WHERE b.`id_user` = 'olezha' AND b.`event_id`= a.`id`) AS 'following_state' FROM `markers`
id | name | creator_id | following_state |
1 | pan africa | olezha | 1 |
2 | Rel africa | User2 | 0 |
id | name | creator_id | following_state |
1 | pan africa | olezha | 1 |
2 | Rel africa | User2 | 1 |
Попробовал через case . Почти то - что мне нужно, но запрос дублит записи.
SELECT DISTINCT m.`id`, m.`name`, m.`creator_id`, CASE WHEN m.`id` = f.`event_id` AND f.`id_user`='olezha' THEN ( SELECT COUNT(b.id_user) FROM `markers`a,`following`b WHERE b.`id_user` = 'olezha' AND b.`event_id`= a.`id` ) ELSE '0' END AS `following_status` FROM `markers` m,`following` f
Решение задачи: «Вложенный SELECT»
textual
Листинг программы
SELECT q.id_user, COUNT(q.event_id) FROM following q GROUP BY q.id_user
Объяснение кода листинга программы
- В данном коде используется язык SQL для работы с базой данных.
- Задачей кода является подсчет количества событий, на которые подписан конкретный пользователь.
- Для этого используется оператор SELECT, который выбирает необходимые данные из таблицы.
- В качестве выбранных данных выступают id пользователя и количество событий (event_id), на которые он подписан.
- Чтобы посчитать количество событий, используется функция COUNT().
- Для группировки результатов по id пользователя используется оператор GROUP BY.
- В итоге, для каждого id пользователя будет выведено количество событий, на которые он подписан.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д