On Sat, 10 Oct 2009, [utf-8] Dag-Erling Sm??rgrav wrote:

> Consider the attached schema (filmstars.sql), which is a poorly designed
> database of films and actors.  The following query gives me a list of
> films in which either Charlie or Martin Sheen starred:
>
> select fs.film.title, fs.film.year
>   from fs.film left join fs.star on fs.film.id = fs.star.film
>   where fs.star.last = 'Sheen'
>   group by fs.film.title, fs.film.year;
>
> Is there a way to do this without the "group by" clause?

Not at all tested as I don't have access to my db right now, but I think
something like one of these would work:

select fs.film.title, fs.film.year
 from fs.film
 where exists(select 1 from fs.star where fs.film.id = fs.star.film
  and fs.star.last = 'Sheen');

select fs.film.title, fs.film.year
 from fs.film
 where fs.film.id in (select fs.star.film where fs.star.last = 'Sheen');

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

Reply via email to