Phantom record problem. - Mailing list pgsql-novice

From Richard
Subject Phantom record problem.
Date
Msg-id 39579C66.F7BC0B42@sfu.ca
Whole thread Raw
List pgsql-novice
I am experiencing a problem whereby when I submit a query containing an
aggregate, and if the WHERE clause is not satisfied, I receive a result
of "(1 row)", but that row is blank.

Here is an example:

Table 1: Customers

        Name     | UID
   ----------------------
    Andrews      |  1
    Smith        |  2
    Jones        |  3
    Baker        |  4


Table 2: Deposits

        UID  | Amount
   ----------------------
         3   |  7.00
         1   | 15.00
         1   | 10.00
         2   |  8.00
         3   | 20.00


Now, if I submit the following query:

  SELECT name, sum(amount)
       FROM customers c, deposits d
       WHERE c.uid = d.uid and c.uid = 3
       GROUP BY name;

I get back:

   name      | sum
  --------------------
   Jones     | 27.00
   (1 row)

Fine, this looks good.

BUT, if I submit the following query:

  SELECT name, sum(amount)
       FROM customers c, deposits d
       WHERE c.uid = d.uid and c.uid = 5
       GROUP BY name;

(note that there is no record where c.uid=5) I would not expect any rows
back.  However, I get:

   name      | sum
  --------------------
             |
  (1 row)


Is this a bug, or is it supposed to work this way?  I've tried this on
both versions 6.5.2 and 6.5.3 with the same result.

Any insight would be appreciated.  Thank-you.

Cheers,
Richard

pgsql-novice by date:

Previous
From: Ryan Ho
Date:
Subject: How to install perl module without root access
Next
From: "Poul L. Christiansen"
Date:
Subject: Re: Phantom record problem.