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

mahoune
...
Рейтинг: 0 / 0
02.06.2003, 19:29
    #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
02.06.2003, 19:30
    #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
03.06.2003, 12:03
    #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
03.06.2003, 18:34
    #32175596
Valerik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли избежать повторения в запросах?
Да смысыл не ажен вы попросили меня дать вам большой запрос я вам дал..:)
А ответа на свой вопрос так и не получил :(
__________
Можноли как ни будь сделать то бы не повпорять большие запросы. ?
...
Рейтинг: 0 / 0
03.06.2003, 18:44
    #32175606
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли избежать повторения в запросах?
Конечно. Пользоваться временными таблицами . Они вполне быстро работают. Они валидны только для текущего подключения. Они позоляют решить массу задач.

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


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