pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Stephan Szabo <sszabo@megazone.bigpanda.com>
To: Dag-Erling Smørgrav <des@des.no>
Cc: pgsql-sql@postgresql.org
Subject: Re: Existential quantifier
Date: Fri, 9 Oct 2009 16:06:56 -0700 (PDT)
Message-ID: <20091009160318.J80119@megazone.bigpanda.com> (raw)
In-Reply-To: <86bpkgqiv8.fsf@ds4.des.no>
References: <86bpkgqiv8.fsf@ds4.des.no>

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');



view thread (6+ messages)  latest in thread

Message-ID: <20091009160318.J80119@megazone.bigpanda.com>
Permalink:  ../20091009160318.J80119@megazone.bigpanda.com/
Also on:    postgresql.org/message-id/20091009160318.J80119@megazone.bigpanda.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: sszabo@megazone.bigpanda.com, des@des.no
  Subject: Re: Existential quantifier
  In-Reply-To: <20091009160318.J80119@megazone.bigpanda.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox