Конференция "Базы" » Вложенный запрос с 2мя параметрами
 
  • REA (07.07.08 14:52) [0]
    Добрый день коллеги. Помогите с запросом IB. Требуется составить запрос вида:

    Select * from T1 where T1.P1 > (select P1 from T2 where...) and T1.P2 < (select P2 from T2 where ...)

    причем вот этот второй вложенный select и третий это тоже самое.
    Т.е. запрос должен бы выглядеть как то так (по смыслу, но не по синтаксису - понятно что такого запроса не бывает):

    Select * from T1 where T1.P1 >, T1.P2 < (select P1, P2 from T2 where...)
  • Anatoly Podgoretsky © (07.07.08 14:53) [1]
    В приведеном коде не то, что второго параметра не видать, но и первого тоже.
  • Правильный^Вася (07.07.08 15:03) [2]
    телепатор подсказывает, что раз подзапросы одинаковые, то автор хочет чтоб параметры по 2 раза не присваивать
  • REA (07.07.08 15:08) [3]
    допустим таблица T1 содержит столбцы (числовые) P1 и P2. T2 тоже содержит пары чисел P1, P2.
    P1 и P2 в данном случае не фиксированные пары чисел, а получаются из T2. Стало быть параметры.
    Если я не прав в терминологии извиняюсь, но смысл думаю понятен.
  • REA (07.07.08 15:09) [4]
    >телепатор подсказывает, что раз подзапросы одинаковые, то автор хочет чтоб параметры по 2 раза не присваивать

    воистину. мало того - значение P1 второго запроса должно соответствовать P2 третьего запроса. Т.е. они должны быть из одной строки T2
  • Поросенок Винни-Пух © (07.07.08 15:15) [5]
    для этого параметры вообще не нужны.
  • REA (07.07.08 15:18) [6]
    У меня телепатор гораздо хуже работает.
    А что нужно? Можно примерчик?
  • Поросенок Винни-Пух © (07.07.08 15:20) [7]
    where t1.f1 = t2.ff1 and t1.f2 = t2.ff2 и так далее
  • REA (07.07.08 15:29) [8]
    хм. попробую. спасибо.
  • Sergey13 © (07.07.08 15:35) [9]
    > [0] REA   (07.07.08 14:52)

    А какая связь между таблицами?
  • REA (07.07.08 15:46) [10]
    хм. да никакой связи.

    спасибо за совет - работает. правда придется логику программы переделать, но такой вариант подойдет.
  • Sergey13 © (07.07.08 15:51) [11]
    > [10] REA   (07.07.08 15:46)
    > хм. да никакой связи.

    Тогда что мыслилось вместо многоточия в исходном подзапросе?
  • Виталий Панасенко(дом) (08.07.08 06:52) [12]

    > REA   (07.07.08 15:46) [10]
    >
    > хм. да никакой связи.
    >
    > спасибо за совет - работает. правда придется логику программы
    > переделать, но такой вариант подойдет.

    А зачем ее менять, если выборка вернет то, что нужно?
  • RUYurik (08.07.08 08:00) [13]
    В подзапросах подразумевалось возвращение результата из множества записей. Вопрос, где условия в подзапросах, по которым возможно возвратить 1 значение для сравнения? И если все таки есть связь между таблицами не лучше ли воспользоваться JOIN'ом

    select T1.*
    from T1
      left outer join T2 on (T2.Поле связи = T1.Поле связи)
    where
      T1.P1 > T2.P1 and
      T1.P2 < T2.P2
 
Конференция "Базы" » Вложенный запрос с 2мя параметрами
Есть новые Нет новых   [134434   +27][b:0][p:0.001]