Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.05;
Скачать: CL | DM;

Вниз

Фильтр Query1 по Query2   Найти похожие ветки 

 
galexis ©   (2003-04-08 16:28) [0]

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


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

filter="id1=id2"
filtered:=true


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

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



 
galexis ©   (2003-04-08 16:54) [3]

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

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

>Соловьев ©

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


 
NickBat ©   (2003-04-08 16:58) [4]

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


 
Mike Kouzmine ©   (2003-04-08 17:05) [5]

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


 
galexis ©   (2003-04-08 17:06) [6]

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


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

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

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


 
galexis ©   (2003-04-08 17:22) [8]

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

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


 
Mike Kouzmine ©   (2003-04-08 17:26) [9]

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


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

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


 
Johnmen ©   (2003-04-08 17:38) [11]

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


 
galexis ©   (2003-04-08 17:44) [12]

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

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


 
Johnmen ©   (2003-04-08 17:51) [13]

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


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

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


 
NickBat ©   (2003-04-08 18:20) [15]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2003.05.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
1-12823
Dinn
2003-04-22 17:04
2003.05.05
Delphi 5 and chm-file


6-12852
Vyacheslav
2003-03-11 21:32
2003.05.05
Работа с сетью


9-12600
deema123
2002-11-29 19:30
2003.05.05
А вот это как??


1-12768
ValeraVV
2003-04-22 07:53
2003.05.05
Как достучаться до IHTMLDocument из ActiveX


1-12798
Weare
2003-04-22 12:49
2003.05.05
Работа с QuickRep