pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tim Landscheidt <tim@tim-landscheidt.de>
To: pgsql-sql@postgresql.org
Subject: Re: UNION or LEFT JOIN?
Date: Tue, 16 Feb 2010 21:38:19 +0000
Message-ID: <m3635wuaic.fsf@passepartout.tim-landscheidt.de> (raw)
References: <20100216140814.GA22577@apartia.fr>

Louis-David Mitterrand <vindex+lists-pgsql-sql@apartia.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.

Tim




view thread (5+ messages)  latest in thread

Message-ID: <m3635wuaic.fsf@passepartout.tim-landscheidt.de>
Permalink:  ../m3635wuaic.fsf@passepartout.tim-landscheidt.de/
Also on:    postgresql.org/message-id/m3635wuaic.fsf@passepartout.tim-landscheidt.de

 · 

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: tim@tim-landscheidt.de
  Subject: Re: UNION or LEFT JOIN?
  In-Reply-To: <m3635wuaic.fsf@passepartout.tim-landscheidt.de>

* 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