Re: Query Problem

Поиск
Список
Период
Сортировка
От Tomas Berndtsson
Тема Re: Query Problem
Дата
Msg-id 80og07675m.fsf@junk.nocrew.org
обсуждение исходный текст
Ответ на Query Problem  (Josh Berkus <josh@agliodbs.com>)
Список pgsql-sql
Josh Berkus <josh@agliodbs.com> writes:

> Folks:
> 
> Here's the problem, in abstract:  I need to select every record in table
> A that does not have a link in table B Join Table C where Table
> C.account = 11
> 
> The relevant fields:
> 
> Table_A
> CaseID
> Data
> 
> Table_B
> GroupID
> CaseID
> Amount
> 
> Table_C
> GroupID
> AccountID
> 
> Thus, I need to select:
> 
> SELECT Data FROM Table A 
> WHERE CaseID NOT IN (
>     SELECT CaseID FROM Table_B, Table_C
>     WHERE Table_B.GroupID = TableC.GroupID
>         AND TableC.AccountID = 11)
> 
> The problem is, since Table_B and Table_C are large (10,000 records +)
> this exclusion query takes several *minutes* to run.
> 
> I've fooled around with drectional joins, views, and temporary tables,
> but I can seem to find anything that works faster.  Suggestions?

Without having tried, something like this might be faster:

SELECT Data FROM Table A 
WHERE CaseID NOT IN (SELECT CaseID FROM Table_BWHERE Table_B.GroupID IN (               SELECT GroupID FROM Table_C
WHERETableC.AccountID = 11))
 


Tomas


В списке pgsql-sql по дате отправления:

Предыдущее
От: Stephan Szabo
Дата:
Сообщение: Re: Add Constraint
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Alternate Database Locations