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

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

Фильтр Query1 по Query2 [D6, IB6.x, FireBird]


galexis ©   (2003-04-08 16:28:00) 

Уважаемые мастера!
Есть два Query с одинаковыми полями ID1. Как в одном из них оставить только те записи, которые есть в другом?


VPman   (2003-04-16 02:41:00) [1]

Если до этого момента все через ж$#$ шло, так можно и для второй квери и временную таблицу создать. Это я так, шучу.


NickBat   (2003-04-08 18:20:00) [2]

> Могу одним запросом выбрать данные из одной группы таблиц,
> а другим из другой.
Что-то ты не договариваешь. :)))
Сам говорил в начале, что есть два Query с одинаковыми полями ID1. То есть эти два запроса имеют общее поле:
Теперь ответь почему их нельзя сразу связать?


Diouzshev   (2003-04-08 18:19:00) [3]

Не помню работает ли такое в IB, но можно так:
select .......... where ........ and id1 in (select ..............)
Но все же лучше хп.


Johnmen   (2003-04-08 17:51:00) [4]

Некоторые подробности здесь :
Пуск->Программы->InterBase->Documentation


galexis   (2003-04-08 17:44:00) [5]

>Соловьев ©
А по подробнее. Что такое ХП?

>Johnmen ©
И что такое VIEW?


Johnmen   (2003-04-08 17:38:00) [6]

+ VIEW зачем придумали???


Соловьев   (2003-04-08 17:30:00) [7]

ХП зачем придумали???


Mike Kouzmine   (2003-04-08 17:26:00) [8]

тогда прошу прощения.


galexis   (2003-04-08 17:22:00) [9]

>Mike Kouzmine ©
Как я понимаю, в фильтре в правой части может быть одно значение, а у меня их тысячи.

>NickBat ©
Я имел ввиду, что не могу из БД выбрать удовлетворяющие всем условиям записи используя один SQL запрос. Это связано со структурой БД. Могу одним запросом выбрать данные из одной группы таблиц, а другим из другой. Получаю два набора данных. Один большой, второй поменьше. В них есть одно общее поле (поле связи).


NickBat   (2003-04-08 17:10:00) [10]

> Я не могу все условия задать одним запросом, могу двумя.
Это как?
И ты определись, что тебе нужно:
-обьеденить результаты двух запросов
-в одном из них оставить только те записи, которые есть в другом

Это все таки немножко разные вещи.


galexis   (2003-04-08 17:06:00) [11]

Есть большая поисковая форма в программе, формируется запрос на выбор из более чем 30 таблиц. Структура БД безобразная (не я делал). Я не могу все условия задать одним запросом, могу двумя. Вот и получается два Query, но их как-то объединить надо. Один из выходов - использовать OnFilterRecord, но это медлено, записей то около миллиона. Так как можно объединить результаты двух запросов?


Mike Kouzmine   (2003-04-08 17:05:00) [12]

id2 - это то, что надо.


NickBat   (2003-04-08 16:58:00) [13]

А зачем указывать вместо таблиц запрос?
Соловьев © (08.04.03 16:35) все верно указал, только подставь туда еще where и будет тебе счастье. :)


galexis   (2003-04-08 16:54:00) [14]

>Mike Kouzmine ©
А что здесь id2?

В Query1 записей больше, чем в Query2 и в Query1 есть ID1, которых нет в Query2. Надо чтобы в Query1 остались только те записи в которых есть ID1 из Query2.

>Соловьев ©

Как связывать таблицы с помощью JOIN я знаю. Или Вы имеете ввиду что можно делать запрос указывая вместо таблицы БД Query?


Соловьев   (2003-04-08 16:35:00) [15]

select t1.*
from table1 t1 join table2 t2 on t1.id1=t2.id1


Mike Kouzmine   (2003-04-08 16:33:00) [16]

filter="id1=id2"
filtered:=true


Наверх

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