powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Возможно ли избежать повторения в запросах?
8 сообщений из 8, страница 1 из 1
Возможно ли избежать повторения в запросах?
    #32173512
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю большой запрос. например.
SELECT x1.ID,( Большой запрос 1),(Большой запрос 2),(( Большой запрос 1)-(Большой запрос 2)) from tabl1
Можноли как ни будь сделать то бы не повпорять большие запросы. ?
...
Рейтинг: 0 / 0
Возможно ли избежать повторения в запросах?
    #32173801
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerik, покажи настоящий запрос. Я вообще не понял что у тебя означает
Большой запрос 2 - это вложенный запрос, или набор функций???

mahoune
...
Рейтинг: 0 / 0
Возможно ли избежать повторения в запросах?
    #32174569
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сам попросил...

SELECT x1.ID,IFNULL( IF(x1.stat='p' and x1.deltastatus=2,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and p.deltastatus=1 and x.rgt=x1.rgt-1 group by x.id) ,IF(x1.stat='p' and x1.deltastatus=1,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and x.rgt=x1.rgt-1 group by x.id),0)),0 )+ x1.Unrgt as RGTS ,IFNULL( IF(x1.stat='p' and x1.deltastatus=2,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and p.deltastatus=1 and x.lft=x1.lft+1 and x.rgt<>x1.rgt-1 group by x.id) ,IF(x1.stat='p' and x1.deltastatus=1,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and x.lft=x1.lft+1 and x.rgt<>x1.rgt-1 group by x.id),0)),0 )+ x1.Unlft FROM personnel as x1
...
Рейтинг: 0 / 0
Возможно ли избежать повторения в запросах?
    #32174571
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сам попросил...

SELECT x1.ID,IFNULL( IF(x1.stat='p' and x1.deltastatus=2,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and p.deltastatus=1 and x.rgt=x1.rgt-1 group by x.id) ,IF(x1.stat='p' and x1.deltastatus=1,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and x.rgt=x1.rgt-1 group by x.id),0)),0 )+ x1.Unrgt as RGTS ,IFNULL( IF(x1.stat='p' and x1.deltastatus=2,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and p.deltastatus=1 and x.lft=x1.lft+1 and x.rgt<>x1.rgt-1 group by x.id) ,IF(x1.stat='p' and x1.deltastatus=1,(select (count(p.ID)) from personnel x, personnel p where p.lft between x.lft and x.rgt and p.stat='p' and x.lft=x1.lft+1 and x.rgt<>x1.rgt-1 group by x.id),0)),0 )+ x1.Unlft FROM personnel as x1
...
Рейтинг: 0 / 0
Возможно ли избежать повторения в запросах?
    #32174944
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Красивый скрипт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
SELECT
  x1.ID,
  IFNULL(
    IF(x1.stat='p' and x1.deltastatus= 2 ,
      (
        select (count(p.ID))
        from personnel x, personnel p
        where
          p.lft between x.lft and x.rgt
          and
          p.stat='p'
          and
          p.deltastatus= 1 
          and
          x.rgt=x1.rgt- 1 
        group by x.id
      ),
      IF (x1.stat='p' and x1.deltastatus= 1 ,
        (
          select (count(p.ID))
          from personnel x, personnel p
          where
            p.lft between x.lft and x.rgt
            and
            p.stat='p'
            and
            x.rgt=x1.rgt- 1 
          group by x.id
        ), 0 
      )
    ), 0 
  ) + x1.Unrgt as RGTS,

  IFNULL(
    IF(x1.stat='p' and x1.deltastatus= 2 ,
      (
        select (count(p.ID))
        from personnel x, personnel p
        where
          p.lft between x.lft and x.rgt
          and
          p.stat='p'
          and
          p.deltastatus= 1 
          and
          x.lft=x1.lft+ 1 
          and x.rgt<>x1.rgt- 1 
        group by x.id
      ),
      IF(x1.stat='p' and x1.deltastatus= 1 ,
        (
          select (count(p.ID))
          from personnel x, personnel p
          where
            p.lft between x.lft and x.rgt
            and
            p.stat='p'
            and
            x.lft=x1.lft+ 1 
            and
            x.rgt<>x1.rgt- 1 
          group by x.id
        ), 0 
      )
    ), 0 
  ) + x1.Unlft
FROM personnel as x1


Пожалуйста, донеси до меня смысл всего этого?


mahoune
...
Рейтинг: 0 / 0
Возможно ли избежать повторения в запросах?
    #32175596
Valerik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да смысыл не ажен вы попросили меня дать вам большой запрос я вам дал..:)
А ответа на свой вопрос так и не получил :(
__________
Можноли как ни будь сделать то бы не повпорять большие запросы. ?
...
Рейтинг: 0 / 0
Возможно ли избежать повторения в запросах?
    #32175606
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно. Пользоваться временными таблицами . Они вполне быстро работают. Они валидны только для текущего подключения. Они позоляют решить массу задач.

Но есть 2 ограничения .
...
Рейтинг: 0 / 0
Возможно ли избежать повторения в запросах?
    #32176474
medved
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Медведи смотрят на запрос и говорят Даааааааааааааааааа
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Возможно ли избежать повторения в запросах?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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