powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите дополнить запрос
2 сообщений из 2, страница 1 из 1
Помогите дополнить запрос
    #38376916
namsilaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос:
Код: sql
1.
2.
3.
4.
SELECT ally_data.ally_name, characters.char_name as leader
FROM ally_data
LEFT JOIN characters ON characters.obj_Id = ally_data.leader_id
LIMIT(100);



Проблема в том, что сейчас для подсчета количества персонажей в альянсе выполняется еще по 2 запроса в цикле:
Код: sql
1.
SELECT clan_id FROM clan_data WHERE ally_id = $ally_id


Код: sql
1.
SELECT COUNT(*) FROM characters WHERE clan_id IN ($clans_ids)


Что в общем дает 201 запрос только из этого куска кода, что есть совсем не хорошо.

Пытался объединить эти запросы в один, но максимум чего добился - это подсчета количества персонажей отдельно по кланам. Но это не совем то, что мне надо. В идеале я пытаюсь получить данные в таком формате:
ally_nameleadercharacters_count
Помогите пожалуйста.


Структура таблиц:

ally_data
ally_idally_nameleader_id

clan_data
clan_idclan_nameally_id

characters
obj_Idchar_nameclan_id
...
Рейтинг: 0 / 0
Помогите дополнить запрос
    #38377850
namsilaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Родил сам такое
Код: sql
1.
2.
3.
4.
5.
SELECT ally_data.ally_id, ally_data.ally_name, characters.char_name as leader,
(SELECT COUNT(0) FROM characters where characters.clanid IN (SELECT clan_data.clan_id FROM clan_data WHERE clan_data.ally_id = ally_data.ally_id)) as characters_count
FROM ally_data
LEFT JOIN characters ON characters.obj_Id = ally_data.leader_id
LIMIT 100;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите дополнить запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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