count() and multiple tables - Mailing list pgsql-sql

From Joseph Shraibman
Subject count() and multiple tables
Date
Msg-id 3AB6983A.E64A6AD6@selectacast.net
Whole thread Raw
Responses Re: count() and multiple tables  ("Josh Berkus" <josh@agliodbs.com>)
Re: count() and multiple tables  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-sql
I want to select all the entries from d that have at least one
corresponding entry in u that meets my conditions.  The problem is that
count(*) is returning the number of corresponding entries in u, and I
want only the number of entries in d.  How do I do this?


create table d(              id int  primary key,                 status int default 1
);

create table a(              key int primary key,                  status int default 1
);

create table u(       dkey int not null,akey int not null,b bool DEFAULT false,       status int default 1,primary key
(dkey,akey) 
 
);

insert into d values (1, 2);

insert into a values (1, 3);
insert into a values (2, 3);
insert into a values (3, 3);

insert into u values(1,1,false,2);
insert into u values(1,2,false,1);
insert into u values(1,3,false,2);

select count(*) from d where status = 2 and d.id = u.dkey and u.status =
2 and not u.b and u.akey = a.key and a.status = 3;

/* that returns 2 when I want it to return 1 */

drop table d;
drop table a;
drop table u;


-- 
Joseph Shraibman
jks@selectacast.net
Increase signal to noise ratio.  http://www.targabot.com


pgsql-sql by date:

Previous
From: "Josh Berkus"
Date:
Subject: Re: Manual Trigger Creation
Next
From: Tom Lane
Date:
Subject: Re: Manual Trigger Creation