Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.02.2011, 16:54
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 1  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
Question Помогите с выборкой из 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 колени



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

Старый 22.02.2011, 17:58
t4arty вне форума Посмотреть профиль Отправить личное сообщение для t4arty Найти все сообщения от t4arty
  № 2  
Ответить с цитированием
t4arty

Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
может быть несколько запросов ?

Старый 22.02.2011, 18:51
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 3  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
Цитата:
Сообщение от Azo Посмотреть сообщение
например я boss_id = 2... мне надо вычислить сколько у меня клиентов и вывести их id
Код AS1/AS2:
SELECT count(*) from table where boss_id =2;
// тут я тока вывел сколько у меня клиентов... 
//но надо чтобы выводило сколько клиентов и 
//через запятую id этих клиентов
потом вычеслить сколько клиентов у моих клиентов (без перечисления id)
сколько клиентов у клиентов моих клиентов
и т.д до 5 колени



ВОТ ТАК НЕ ЗАДАЧА ПРАВДА?!? =) (((
Получите от mysql id, затем посчитайте их там же, где их будете обрабатывать.
По поводу до 5-го колена почитайте

Старый 22.02.2011, 20:16
willis83 вне форума Посмотреть профиль Отправить личное сообщение для willis83 Найти все сообщения от willis83
  № 4  
Ответить с цитированием
willis83
 
Аватар для willis83

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
Наверное легче всего будет посчитать это в пхп(или через что вы общаетесь с БД), организовать какой-нибудь цикл и до пятого колена делать запросы в БД, а потом просто вернуть значение флэшу, тем более sql вам не отдаст значения разных таблиц через запятую, а в скрипте вы сможете организовано всё вывести через xml

Старый 22.02.2011, 20:18
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 5  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
ну я с учетом оптимизации спрашивал чтобы не как попало несколькими запросами грузить процессок (тем более что запросов будет миллионы =)) )

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

Старый 22.02.2011, 20:27
willis83 вне форума Посмотреть профиль Отправить личное сообщение для willis83 Найти все сообщения от willis83
  № 6  
Ответить с цитированием
willis83
 
Аватар для willis83

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
порой реорганизация структуры это самый верный вариант

Старый 23.02.2011, 14:53
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 7  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Еще подзапросы есть, что то вроде
Код AS1/AS2:
SELECT * from client_table where client_id IN (select id from boss_table);
Соотв можно и глубже
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 23.02.2011, 15:19
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Код:
select count(client_id) where boss_id in (select client_id from table where boss_id = 2);

Старый 23.02.2011, 22:14
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 9  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
Спасибо дорогие!
Не знал про подзапросы...

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

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

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
mysql , выборка

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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