Search Postgresql Archives

Re: SELECT only those values of table B which have a value in table A

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 25 Feb 2010 09:34:19 +0100, Stefan Schwarzer wrote:
> Hi there,
> 
> I have tables with values for each country of the world.
> 
> Now, there is the possibility for the user to generate regional
> (Europe, Africa...) or subregional (Western Europe, Central
> Europe...) aggregations on-the-fly. In some cases, these
> aggregations need to be calculated by using the population of each
> region too, as a denominator, which looks like this:
> 
> 
> 		SELECT
> 			COALESCE(r.name, '''') AS name,	
> 			d.year_start AS year,
> 			SUM(d.value * d_nom.value) / SUM(d_nom.value) AS value	
> 		FROM
> 			pop_total_access_water AS d
> 		RIGHT JOIN
> 			countries_view AS c ON c.id = d.id_country
> 		RIGHT JOIN
> 			pop_total AS d_nom ON d_nom.id_country = d.id_country
> 		RIGHT JOIN
> 			subregions_view AS r ON r.id = c.sreg_id	
> 		WHERE
> 			(d.year_start = 1990 ) AND
> 			(d_nom.year_start = 1990 ) AND
> 			d_nom.value <> 0
> 		GROUP BY
> 			r.name, d.year_start	
> 		ORDER BY 1,2
> 
> Now, I would like to use from table "d_nom" only these countries
> which have a value in table "d" as well.

Without thinking much (so this may be completely wrong for some reason/additional
changes may be needed), why do you use a right join to the d_nom table?
An ordinary inner join should give you only these countries which have
their rows in the d table.

-- 
Michał Politowski
Talking has been known to lead to communication if practiced carelessly.

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


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux