[vox-tech] SQL selecting distinct from multiple index tables

Foo Lim vox-tech@lists.lugod.org
Sat, 31 Jan 2004 01:46:28 -0800 (PST)


select distinct
Organizations.OID, Organizations.Name, Organizations.Acronym
from Organizations o
where o.OID in
  (select OrgID from OrgDocs
   union
   select OrgID from OrgProjects);

Build subqueries first, thereby avoiding the full table joins.

On Fri, 30 Jan 2004, David Siedband wrote:

> I have two index tables the associate Organizations with documents and 
> projects.  I'm trying to write a query that returns all the 
> organizations that are associated with either a project or document.
> 
> To select distinct organization that are either associated with a 
> Document or a Project, I'm using SQL that looks like this.
> 
> select distinct Organizations.OID , Organizations.Name , 
> Organizations.Acronym
> from OrgDocs , Organizations
> where OrgDocs.OrgID = Organizations.OID
> 
> select distinct Organizations.OID , Organizations.Name , 
> Organizations.Acronym
> from OrgProjects , Organizations
> where OrgProjects.OrgID = Organizations.OID
> 
> Any suggestions on how to combine this into a single query?
> 
> thx,
> 
> --
> David