![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтр 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