A couple of thoughts: 1) The "union" really only pertains to the entity table rows; once you "union all" those (duplicates should not matter and probably will not even be present so using "all" avoids an unnecessary sort) you can join that sub-query to the document_usage table. 2) Since every entity must have an associated company moving the company_id field to the entity table will allow a direct search for company objects using entity alone and remove the need to perform the union. The "company" table omits the implicit self-referencing company_id but it is still there in reality. David J. -- View this message in context: http://postgresql.1045698.n5.nabble.com/Querying-all-documents-for-a-company-and-its-projects-etc-tp5799967p5799978.html Sent from the PostgreSQL - general mailing list archive at Nabble.com. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general