Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно написать select ... in по двум полям?


SergP ©   (2005-02-24 19:05:00) 

Пишу примерно так:
select * from table1
  where field1||'/'||field2 not in
   (select field1||'/'||field2 from table2)

Оно работает. Только есть сомнения в том насколько правильно использовать в таком случае конкатентацию.

Есть ли еще какие-нить способы делать select ... in по нескольким полям?


SergP   (2005-02-24 23:44:00) [1]


> и построить индекс на table2 по field1 и field2.


это обязательное условие или просто желательное для ускорения выполнения запроса?


JohnnyJ   (2005-02-24 20:25:00) [2]

с учетом [1]:

select *
from table1 as a
where not exists (select 1
                 from table2 as b
                 where b.field1 = a.field1
                   and b.field2 = a.field2);

и построить индекс на table2 по field1 и field2.


SergP   (2005-02-24 19:11:00) [3]

СУБД Oracle


SergP   (2005-02-24 19:08:00) [4]

имеется ввиду то что символа '/' не может быть в вышеуказаных полях.


Наверх

Титульная страница Поиск, карта сайта Написать письмо