Re: UNION or LEFT JOIN?
От | Louis-David Mitterrand |
---|---|
Тема | Re: UNION or LEFT JOIN? |
Дата | |
Msg-id | 20100216214305.GA22807@apartia.fr обсуждение исходный текст |
Ответ на | Re: UNION or LEFT JOIN? (Tim Landscheidt <tim@tim-landscheidt.de>) |
Список | pgsql-sql |
On Tue, Feb 16, 2010 at 09:38:19PM +0000, Tim Landscheidt wrote: > 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. 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,
В списке pgsql-sql по дате отправления: