Re: Adding two select statements together - Mailing list pgsql-novice

From Josh Berkus
Subject Re: Adding two select statements together
Date
Msg-id web-1372465@davinci.ethosmedia.com
Whole thread Raw
In response to Adding two select statements together  ("Brian Johnson" <bjohnson@jecinc.on.ca>)
List pgsql-novice
Brian,

> I have three tables for entering time data for projects.
>
> The three tables are timeentries, projects, and projectstatus.
>  timeentries
> references the project id from projects and projects references the
> projectstatus table

This sounds nightmarish ... do you have any design control over the
database?

> I want to select all of the projects that aren't defined as
> "Inactive" like
> so
> SELECT testproject.*, teststatus.name
> FROM testproject INNER JOIN teststatus ON testproject.status =
> teststatus.id
> WHERE (teststatus.name<>"Inactive");
>
>
> but I also want to include any projects that are referenced by the
> timeentries between two dates (without having duplicate project
> listings)

What's wrong with changing the where clause to:

WHERE (teststatus.name<>"Inactive")
    OR EXISTS ( SELECT timeentries.projectid
            FROM timeentries
            WHERE timeentries.dateentered BETWEEN $start_date AND $end_date
            AND projectid = testproject.projectid);

You should pick up a SQL book to learn about more clauses like EXISTS.
 See:
http://techdocs.postgresql.org/techdocs/bookreviews.php
For listings of a few books.

-Josh Berkus



pgsql-novice by date:

Previous
From: "Brian Johnson"
Date:
Subject: Adding two select statements together
Next
From: "Juliet May"
Date:
Subject: Working with multiple selects?