Re: UNION or LEFT JOIN?

From: Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: UNION or LEFT JOIN?
Date: 2010-02-16 21:43:05
Message-ID: 20100216214305.GA22807@apartia.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Tue, Feb 16, 2010 at 09:38:19PM +0000, Tim Landscheidt wrote:
> Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org> wrote:
>
> > Here is the basic schema:
>
> > -------------------------->id_ship>-----------------------
> > | |
> > [SHIP]->id_ship->[CABIN]->id_cabin->[PRICE]<-id_cruise<-[CRUISE]
>
> > It's a database of cruise prices.
>
> > Each 'price' object has a reference to 'cabin' and 'cruise'
>
> > 'cabin' belongs to a 'ship', so does 'cruise'
>
> > I'm trying to select all cabins of cruise N°1 with prices OR nothing if
> > there is no price (meaning cabin not available). I want all cabins
> > listed, price or no price.
>
> > Also when doing the query I don't have the id_ship, only the id_cruise.
>
> > What is the best way of doing it? UNION or LEFT JOIN? I tried the latter
> > without success and am unsure on how do do the former.
>
> Was does "without success" mean? The objective seems to be
> straight-forward:
>
> - Select all cabins that belong to the ship that belongs to
> the cruise id_cruise.
> - Left join that with the prices of the cruise id_cruise.

Definitely the way to go. As the real schema is quite a bit more
complicated I was struggling with very long statements, but finally
succeded with a simple left join.

Thanks,

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message silly sad 2010-02-17 07:20:15 very frustrating feature-bug
Previous Message Tim Landscheidt 2010-02-16 21:38:19 Re: UNION or LEFT JOIN?