Subqueries or Joins? Problems with multiple table query

From: Stefan Schwarzer <stefan(dot)schwarzer(at)grid(dot)unep(dot)ch>
To: pgsql-general(at)postgresql(dot)org
Subject: Subqueries or Joins? Problems with multiple table query
Date: 2010-02-23 11:44:06
Message-ID: E851EEA1-3557-4674-ADFA-D36E680AF70A@grid.unep.ch
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi there,

gush, shouldn't be that complicated. But neither in Postgres, nor in
Access I succeed in getting the result I wish.

I have a couple of times for the Environmental Conventions (Kyoto,
Montreal, CITES etc.). They look like this:

id_country,year,value
4,1992,0
4,1993,0
4,1994,0
4,1995,0
4,1996,1
4,1997,0
4,1998,0
4,1999,0
4,2000,0

so that I can see the year where the treaty has been ratified by a
country. (The rows with the zero values seems to be unnecessary, I
have to check that again with the data supplier.)

Now, I would like to have a list of all (european) countries and the
treaties they have signed, in the following style:

country_name,year_kyoto,signed_kyoto,year_montreal,signed_montreal,....
Germany 1996 1
1992 1 ....
France 1995 1
1994 1 ...

Again, the field with the "signed_..." is not necessary, but I just
want to be sure that the query is running correctly.

I tried it with subqueries - something like this:

SELECT countries.name,
(SELECT yearAS basel FROM basel WHERE value = 1 AND countries.id =
basel.id_country) AS basel,
(SELECT yearAS cites FROM cites WHERE value = 1 AND countries.id =
cites.id_country) AS cites
FROM countries, basel, cites

(without the field "signed_..." then), but it seems not to be correct.

I tried it as well with JOINs, but there, too, no success.

Can anyone give me a hint?

Thanks a lot,

Stef

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thom Brown 2010-02-23 11:54:10 Re: Subqueries or Joins? Problems with multiple table query
Previous Message dipti shah 2010-02-23 11:25:52 Minor systax error but not able to resolve it...