Re: Simple OUTER JOIN doubt - Mailing list pgsql-general

From Tom Lane
Subject Re: Simple OUTER JOIN doubt
Date
Msg-id 10222.1161983337@sss.pgh.pa.us
Whole thread Raw
In response to Re: Simple OUTER JOIN doubt  (Sandro Dentella <sandro@e-den.it>)
List pgsql-general
Sandro Dentella <sandro@e-den.it> writes:
> this works in fact, and it's simpler. But I don't really understard why I
> should put it in this way.

The other way seems to work for me:

regression=# create table film_film (id int, titolo text);
CREATE TABLE
regression=# create table vota_punteggio(film_id int, user_id int, voto int);
CREATE TABLE
regression=# insert into film_film values(1, 'one');
INSERT 0 1
regression=# insert into film_film values(2, 'two');
INSERT 0 1
regression=# insert into vota_punteggio values(1, 2, 10);
INSERT 0 1
regression=# SELECT f.id, f.titolo, p.voto
regression-# FROM film_film f LEFT OUTER JOIN vota_punteggio  p
regression-#  ON (f.id = p.film_id)
regression-# WHERE (p.user_id = 2 OR p.user_id IS NULL);
 id | titolo | voto
----+--------+------
  1 | one    |   10
  2 | two    |
(2 rows)

Can you put together a self-contained test case showing the problem?
What PG version are you running, anyway?  (There's a known bug in merge
right join in 8.1.0-8.1.3, but AFAIR the symptom is too many output rows
not too few.)

            regards, tom lane

pgsql-general by date:

Previous
From: Richard Broersma Jr
Date:
Subject: Re: pg_dumpall failing from possible corrupted shared memory
Next
From: Tom Lane
Date:
Subject: Re: pg_dumpall failing from possible corrupted shared memory