Simple Question, hard answer

Поиск
Список
Период
Сортировка
От Matthew
Тема Simple Question, hard answer
Дата
Msg-id A043233669F9D111B99700A0C92376CA0DD6C9@srv.ctlno.com
обсуждение исходный текст
Ответы Re: [GENERAL] Simple Question, hard answer  ("Jonathan A. Zdziarski" <jonz@netrail.net>)
Список pgsql-general
Is there an easier way to do this?

I have a document table, and a keyword table, there is a many to many
relation ship between the two via a link table.  What I want to do is
select all the documents that have two or more keywords.  That is select
.... where keywords.keyword = 'foo1' and keywords.keyword = 'foo2';  The
problem is that after joining the document table to the link table to
the keywords table there is no row that satisfies the criteria.  This
seems like something that would have to be done a lot so I'm wondering
if there is a simple way to do it.  We have accomplished it with the
following SQL statement

select documents.docid, count(documents.docid) as docidcount,
keywords.keyword from documents, link, keywords where (documents.docid =
link.docid and keywords.keyid = link.keyid) and (keyword = 'foo1' or
keyword = 'foo2' ) group by docid having docidcount > 2;

Is there a more efficient way to execute this query?  Sub selects or
something?

Thanks,



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

Предыдущее
От: Michael Davis
Дата:
Сообщение: RE: [ADMIN] delete data
Следующее
От: "Jonathan A. Zdziarski"
Дата:
Сообщение: Re: [GENERAL] Simple Question, hard answer