Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
22 / 21 / 8
Регистрация: 11.09.2015
Сообщений: 109

вложенный SELECT

14.11.2016, 17:22. Показов 1881. Ответов 4
Метки case, sql (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый!
Я что-то подзабыл как делать вложенный селект
Или нужно джоинами, не запинывайте))))

В общем суть такая, что я генерю для каждого юзера xml файлик, в целом он одинаковый за исключением одного индивидуального поля.

Собственно есть 2 таблицы
1 таблица MARKERS с инфой общей для всех
id name creator_id
1pan africaolezha
2Rel africaUser2

2 таблица FOLLOWING носит индивидуальный характер
id_userevent_id
olezha1
user21


sql такой

SQL
1
2
3
4
5
6
7
8
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`
собственно не могу сделать для каждой позиции вывод в стиле
idnamecreator_idfollowing_state
1pan africaolezha1
2Rel africaUser2 0

Я понимаю, что он записывает результат по нику olezha для каждой записи вот так.
idnamecreator_idfollowing_state
1pan africaolezha1
2Rel africaUser2 1

Собственно хотелось бы для каждой записи индивидуальный каунт иметь

Добавлено через 46 минут
Попробовал через case . Почти то - что мне нужно, но запрос дублит записи.
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
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
Теперь не могу избавиться от дублей(((
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.11.2016, 17:22
Ответы с готовыми решениями:

Вложенный SELECT
Подскажите, каким образом организовать следующее: Имеется 3 таблицы, таблица с авторами, с книгами и с городами. Нужно с помощью вложенного...

Вложенный запрос SELECT со значением NULL
Привет! Есть запрос, я не знаю правильно ли реализовал, может ли произойти ошибка: SELECT `id` FROM `t` WHERE `f`=(SELECT `f`...

Как вытащить во вложенном SELECT запись, используя Текущий код внешнего SELECT?
Есть такие таблицы, все поля описывать не буду, главное связи: Главная, тут просто все - свой код + 2 связи на таблицы классификаторы....

4
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
15.11.2016, 09:32
Цитата Сообщение от ole_zha Посмотреть сообщение
FROM `markers` m,`following` f
Теперь не могу избавиться от дублей
Потому как здесь (в основном запросе) нет условия связи между таблицами. Как результат - декартово произведение строк таблиц.
0
Zero day
 Аватар для Meridian21
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
15.11.2016, 09:39
ole_zha, если нужен подсчет записей для всех пользователей, то зачем case-конструкция? Тебе что надо посчитать из таблицы following? Количество event_id для каждого id_user? Это решается конструкцией:
SQL
1
SELECT q.id_user, COUNT(q.event_id) FROM following q GROUP BY q.id_user
Дальше, ты можешь просто join'нить это с таблицей markers.
0
22 / 21 / 8
Регистрация: 11.09.2015
Сообщений: 109
15.11.2016, 10:10  [ТС]
Grossmeister, Meridian21, Друзья, возможно я не совсем понятно просто описал проблему.
Начну чуть дальше.
Есть список маркеров с айдишниками и информацией о маркерах
Есть имена пользователей.
Как только кто-то из пользователей фолловит маркер, производится запись в таблицу following с отношением "пользователи"-"маркеры"

Собственно в выгрузке нужно просто добавить индивидуальное поле, которое просто отобразит значение 1 или 0 для каждого маркера, которое позволит определить зафоловлен ли данный маркер даннымпользователем.

Нужно это для того, что бы проверить статус фолловинга и показать соответствующую кнопку фоллоу или анфоллоу
Если кто может подсказать метод проще, я буду очень рад.
0
22 / 21 / 8
Регистрация: 11.09.2015
Сообщений: 109
17.11.2016, 07:52  [ТС]
все решилось left join'ом )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2016, 07:52
Помогаю со студенческими работами здесь

Select в select или другой способ решения
Необходимо написать запрос. В таблице Info хранится Имя пользователя. Связана таблица с таблицей Users по ID_Users. В таблице Chat....

Передача результата select в другой select
Доброго времени суток, как мне передать id из результата 1 селекта во 2 селект? SELECT id, parent, fio, level from tree AS first WHERE...

Не получается сделать Select where in(select).
Хочу получить список друзей пользователя в vB. Набросал немного, но пахать отказывается( SELECT * FROM `vb4_user` WHERE `userid`...

Вложенный запрос
Доброго времени суток! Помогите пожалуйста составить запрос. Есть таблицы Firms и Tovar. В таблице Firms есть поле Firm, содержащее...

Вложенный запрос с LIKE
Конкретно интересует правильное добавление LIKE. Без него запрос работает нормально.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru