Вложенный SELECT - MySQL (219889)

Узнай цену своей работы

Формулировка задачи:

День добрый! Я что-то подзабыл как делать вложенный селект Или нужно джоинами, не запинывайте)))) В общем суть такая, что я генерю для каждого юзера xml файлик, в целом он одинаковый за исключением одного индивидуального поля. Собственно есть 2 таблицы 1 таблица MARKERS с инфой общей для всех
id name creator_id
1 pan africa olezha
2 Rel africa User2
2 таблица FOLLOWING носит индивидуальный характер
id_user event_id
olezha 1
user2 1
sql такой
Листинг программы
  1. SELECT
  2. `id`,
  3. `name`,
  4. `creator_id`,
  5. (SELECT COUNT(id_user)
  6. FROM `markers`a,`following`b
  7. WHERE b.`id_user` = 'olezha' AND b.`event_id`= a.`id`) AS 'following_state'
  8. FROM `markers`
собственно не могу сделать для каждой позиции вывод в стиле
id name creator_id following_state
1 pan africa olezha 1
2 Rel africa User2 0
Я понимаю, что он записывает результат по нику olezha для каждой записи вот так.
id name creator_id following_state
1 pan africa olezha 1
2 Rel africa User2 1
Собственно хотелось бы для каждой записи индивидуальный каунт иметь
Попробовал через case . Почти то - что мне нужно, но запрос дублит записи.
Листинг программы
  1. SELECT DISTINCT
  2. m.`id`,
  3. m.`name`,
  4. m.`creator_id`,
  5. CASE
  6. WHEN m.`id` = f.`event_id` AND f.`id_user`='olezha'
  7. THEN (
  8. SELECT COUNT(b.id_user)
  9. FROM `markers`a,`following`b
  10. WHERE b.`id_user` = 'olezha' AND b.`event_id`= a.`id` )
  11. ELSE '0'
  12. END AS `following_status`
  13. FROM `markers` m,`following` f
Теперь не могу избавиться от дублей(((

Решение задачи: «Вложенный SELECT»

textual
Листинг программы
  1. SELECT q.id_user, COUNT(q.event_id) FROM following q GROUP BY q.id_user

Объяснение кода листинга программы

  1. В данном коде используется язык SQL для работы с базой данных.
  2. Задачей кода является подсчет количества событий, на которые подписан конкретный пользователь.
  3. Для этого используется оператор SELECT, который выбирает необходимые данные из таблицы.
  4. В качестве выбранных данных выступают id пользователя и количество событий (event_id), на которые он подписан.
  5. Чтобы посчитать количество событий, используется функция COUNT().
  6. Для группировки результатов по id пользователя используется оператор GROUP BY.
  7. В итоге, для каждого id пользователя будет выведено количество событий, на которые он подписан.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут