Phantom record problem.

Поиск
Список
Период
Сортировка
От Richard
Тема Phantom record problem.
Дата
Msg-id 39579C66.F7BC0B42@sfu.ca
обсуждение исходный текст
Список 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 по дате отправления:

Предыдущее
От: Ryan Ho
Дата:
Сообщение: How to install perl module without root access
Следующее
От: "Poul L. Christiansen"
Дата:
Сообщение: Re: Phantom record problem.