Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Помогите с выборкой из Mysql (http://www.flasher.ru/forum/showthread.php?t=151100)

Azo 22.02.2011 16:54

Помогите с выборкой из Mysql
 
Есть вот такая таблица состоящая из клиентов - боссов
Код:

boss_id        client_id
----------|------------|
1                2
1                3
1                4
2                5
2                6
3                7
3                8
4                9
7                10
10              11
10              123
10              34

например я boss_id = 2... мне надо вычислить сколько у меня клиентов и вывести их id
Код AS1/AS2:

SELECT count(*) from table where boss_id =2;
// тут я тока вывел сколько у меня клиентов...
//но надо чтобы выводило сколько клиентов и
//через запятую id этих клиентов

потом вычеслить сколько клиентов у моих клиентов (без перечисления id)
сколько клиентов у клиентов моих клиентов
и т.д до 5 колени



ВОТ ТАК НЕ ЗАДАЧА ПРАВДА?!? =) (((

t4arty 22.02.2011 17:58

может быть несколько запросов ? ;)

andrew911 22.02.2011 18:51

Цитата:

Сообщение от Azo (Сообщение 975381)
например я boss_id = 2... мне надо вычислить сколько у меня клиентов и вывести их id
Код AS1/AS2:

SELECT count(*) from table where boss_id =2;
// тут я тока вывел сколько у меня клиентов...
//но надо чтобы выводило сколько клиентов и
//через запятую id этих клиентов

потом вычеслить сколько клиентов у моих клиентов (без перечисления id)
сколько клиентов у клиентов моих клиентов
и т.д до 5 колени



ВОТ ТАК НЕ ЗАДАЧА ПРАВДА?!? =) (((

Получите от mysql id, затем посчитайте их там же, где их будете обрабатывать.
По поводу до 5-го колена почитайте

willis83 22.02.2011 20:16

Наверное легче всего будет посчитать это в пхп(или через что вы общаетесь с БД), организовать какой-нибудь цикл и до пятого колена делать запросы в БД, а потом просто вернуть значение флэшу, тем более sql вам не отдаст значения разных таблиц через запятую, а в скрипте вы сможете организовано всё вывести через xml

Azo 22.02.2011 20:18

ну я с учетом оптимизации спрашивал чтобы не как попало несколькими запросами грузить процессок (тем более что запросов будет миллионы =)) )

все так и лучшим вариантом выбрал добавление в таблицу еще 4 колонки boss_id2,boss_id3,boss_id4,boss_id5,
и при каждой регистрации просто вписывать родительские уровни в эти колонки... соответственно ускоряем поиск

willis83 22.02.2011 20:27

порой реорганизация структуры это самый верный вариант

leofit 23.02.2011 14:53

Еще подзапросы есть, что то вроде
Код AS1/AS2:

SELECT * from client_table where client_id IN (select id from boss_table);

Соотв можно и глубже

etc 23.02.2011 15:19

Код:

select count(client_id) where boss_id in (select client_id from table where boss_id = 2);

Azo 23.02.2011 22:14

Спасибо дорогие!
Не знал про подзапросы...

теперь надо решить что меньше жрет память.... что выбрать... сейчас делаю через multi_query...

Кстати , кто как проверяет прожорливость команд php.... mysql....?

С недавних пор, когда у меня сервер заглох при отправке уведомлений Вконтакту - я стал следить за каждой строчкой кода


Часовой пояс GMT +4, время: 15:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.