Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Data Bases > Pgsql General > Re: question ab...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 2 of 4 Topic 15431 of 17602
Post > Topic >>

Re: question about join

by osvaldo.kussama@[EMAIL PROTECTED] ("Osvaldo Kussama") May 1, 2008 at 12:17 PM

2008/5/1 Ottavio Campana <ottavio@[EMAIL PROTECTED]
>:
> Hi, I'm having a problem trying to write a query using join, and I hope
you
> can give me a hint.
>
>  suppose you have a three tables like these:
>
>  create table first_table (
>         id serial primary key,
>         description1 text);
>
>  create table second_table (
>         id serial primary key,
>         description2 text);
>
>  create table third_table (
>         id serial primary key,
>         description3 text,
>         id_ref_first_tab integer references first_table(id),
>         id_ref_second_tab integer references second_table(id),
>         default_value boolean);
>
>  create unique index idx1 on third_table
> (id_ref_first_tab,id_ref_second_tab);
>
>  create unique index idx2 on third_table (id_ref_second_tab) where
> default_value = true;
>
>  What I'm trying to do is joining the second and the third tables on
> second_table.id = third_table.id_ref_second_tab to extract all the
values in
> third_table where id_ref_first_tab has a given value or, in case it is
not
> present, to extract only row that has default_values = true;
>
>  To further explain, the following query selects both the rows from the
join
> where id_ref_first_tab has the desired value and default_value = true,
while
> I want to select the row corresponding to default_value = true only in
case
> no row corresponding to id_ref_first_tab exists.
>
>  select * from second_table join third_table on second_table.id =
> third_table.id_ref_second_tab where id_ref_first_tab = 1 or
default_value =
> true;
>
>  I hope I've been clear enough...
>


Try:
select * from second_table join third_table on second_table.id =
third_table.id_ref_second_tab
where id_ref_first_tab = 1 or (id_ref_first_tab <> 1 and default_value =
true);

Osvaldo

-- 
Sent via pgsql-general mailing list (pgsql-general@[EMAIL PROTECTED]
)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
 




 4 Posts in Topic:
question about join
ottavio@[EMAIL PROTECTED]  2008-05-01 10:29:56 
Re: question about join
osvaldo.kussama@[EMAIL PR  2008-05-01 12:17:58 
Re: question about join
ottavio@[EMAIL PROTECTED]  2008-05-01 19:54:44 
Re: question about join
osvaldo.kussama@[EMAIL PR  2008-05-01 17:29:57 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Mon Dec 1 19:29:16 CST 2008.