Simple Question, hard answer
От | Matthew |
---|---|
Тема | Simple Question, hard answer |
Дата | |
Msg-id | A043233669F9D111B99700A0C92376CA0DD6C9@srv.ctlno.com обсуждение исходный текст |
Ответы |
Re: [GENERAL] Simple Question, hard answer
|
Список | 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 по дате отправления: