From: | "Jonathan A(dot) Zdziarski" <jonz(at)netrail(dot)net> |
---|---|
To: | Matthew <matt(at)ctlno(dot)com> |
Cc: | Postgres-General <pgsql-general(at)postgreSQL(dot)org> |
Subject: | Re: [GENERAL] Simple Question, hard answer |
Date: | 1999-03-18 17:58:56 |
Message-ID: | Pine.BSI.4.05L.9903181258550.8778-100000@cartman.netrail.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
done
On Thu, 18 Mar 1999, Matthew wrote:
> 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,
>
>
>
Thank you,
Jonathan A. Zdziarski
Sr. Systems Administrator
Netrail, inc.
888.NET.RAIL x240
From | Date | Subject | |
---|---|---|---|
Next Message | Jonathan A. Zdziarski | 1999-03-18 18:00:28 | Changing Field Types |
Previous Message | Matthew | 1999-03-18 17:49:13 | Simple Question, hard answer |