powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Что за фигня я что то не понимаю.
5 сообщений из 5, страница 1 из 1
Что за фигня я что то не понимаю.
    #32170134
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ помогите разобраться
Имееться такая таблица
ID ParentID Data Info Sell stat deltastatus lft rgt Unlft unrgt
1 0 2003-05-27 p1 3 p 2 1 14 0 0
2 1 2003-05-27 p2 2 p 1 2 7 0 0
3 1 2003-05-27 p3 1 p 1 8 13 0 0
4 2 2003-05-27 p4 0 p 1 3 4 0 0
5 2 2003-05-27 p5 0 p 1 5 6 0 0
6 1 2003-05-27 p6 0 p 1 9 10 0 0
7 3 2003-05-27 p7 0 p 1 11 12 0 0

делаю такой вложенный запрос.
select x.ID,(select COUNT(P2.ID) FROM personnel P2 WHERE P2.lft BETWEEN x.lft AND x.rgt) as comis FROM personnel x WHERE x.stat='p';
вообщем он мне должен выдать количество пользователей которые подписанный под каждым пользователем. но в результате вот что у меня получаеться
ID comis
1 7
2
3
4
5
6
7

т.е. первого он правельно посчитал что под ним подписанно 6 и + он сам.
А остальных почему не считает я не могу понять..
Но когда я делаю такой запрос на пример

select x.ID,(select SUM(P2.ID) FROM personnel P2 WHERE P2.lft BETWEEN x.lft AND x.rgt) as comis FROM personnel x WHERE x.stat='p'
То получаю все нормально
ID comis
1 28
2 11
3 16
4 4
5 5
6 6
7 7
т.е. сумирование Номеров АЙД он делает правельно.
Обясните мне пожайлуста в чем тут дело..
Буду презнателен за помощь.
...
Рейтинг: 0 / 0
Что за фигня я что то не понимаю.
    #32170135
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ помогите разобраться
Имееться такая таблица
ID ParentID Data Info Sell stat deltastatus lft rgt Unlft unrgt
1 0 2003-05-27 p1 3 p 2 1 14 0 0
2 1 2003-05-27 p2 2 p 1 2 7 0 0
3 1 2003-05-27 p3 1 p 1 8 13 0 0
4 2 2003-05-27 p4 0 p 1 3 4 0 0
5 2 2003-05-27 p5 0 p 1 5 6 0 0
6 1 2003-05-27 p6 0 p 1 9 10 0 0
7 3 2003-05-27 p7 0 p 1 11 12 0 0

делаю такой вложенный запрос.
select x.ID,(select COUNT(P2.ID) FROM personnel P2 WHERE P2.lft BETWEEN x.lft AND x.rgt) as comis FROM personnel x WHERE x.stat='p';
вообщем он мне должен выдать количество пользователей которые подписанный под каждым пользователем. но в результате вот что у меня получаеться
ID comis
1 7
2
3
4
5
6
7

т.е. первого он правельно посчитал что под ним подписанно 6 и + он сам.
А остальных почему не считает я не могу понять..
Но когда я делаю такой запрос на пример

select x.ID,(select SUM(P2.ID) FROM personnel P2 WHERE P2.lft BETWEEN x.lft AND x.rgt) as comis FROM personnel x WHERE x.stat='p'
То получаю все нормально
ID comis
1 28
2 11
3 16
4 4
5 5
6 6
7 7
т.е. сумирование Номеров АЙД он делает правельно.
Обясните мне пожайлуста в чем тут дело..
Буду презнателен за помощь.
...
Рейтинг: 0 / 0
Что за фигня я что то не понимаю.
    #32170399
Andrew_P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что MySQL поддерживает вложенные вопросы типа:
Код: plaintext
1.
select field1, (select field2 from table1 where field3 = field1)
...
...
Рейтинг: 0 / 0
Что за фигня я что то не понимаю.
    #32170505
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну с 4.1 да....

Но немного другого вида...
Код: plaintext
1.
2.
3.
SELECt a.id FROM table a
WHERE
a.id IN (SELECT b.id FROM table_2 b)

mahoune
...
Рейтинг: 0 / 0
Что за фигня я что то не понимаю.
    #32171298
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ все это я делал
У меня какая то проблема именно что то с функцией COUNT.
я вот незнаю почему так..
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Что за фигня я что то не понимаю.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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