pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Oliveiros <oliveiros.cristina@marktest.pt>
To: Thomas BOURIMECH <thomas.bourimech@metnext.com>
To: pgsql-sql@postgresql.org
Subject: Re: LEFT OUTER JOIN issue
Date: Wed, 21 Apr 2010 13:53:02 +0100
Message-ID: <987929295D1345B5BCE249F42730CB82@marktestcr.marktest.pt> (raw)
References: <5AF59BAE41BBA14090A31CE077580C53238EAB6FDB@EXCHANGE2007.netcenter.local>

Hi, Thomas.



I believe it is because of your WHERE clause, which is filtering out the nulls from hp table.

According to

WHERE

hp.poste_idposte = 275



You only want registers that have hp.poste_idposte = 275, not the null ones.



HTH



Best,

Oliveiros

  ----- Original Message ----- 
  From: Thomas BOURIMECH 
  To: 'pgsql-sql@postgresql.org' 
  Sent: Wednesday, April 21, 2010 1:29 PM
  Subject: [SQL] LEFT OUTER JOIN issue


  Hi  everyone, here is my problem : 

   

  I got two tables :

   

  CREATE TABLE "public"."calendar_temp" (

    "id" SERIAL, 

    "dat" DATE, 

    "heur" TIME WITHOUT TIME ZONE, 

    CONSTRAINT "calendar_temp_pkey" PRIMARY KEY("id")

  ) WITHOUT OIDS;

   

   

  CREATE TABLE "public"."h_part" (

    "idh" SERIAL, 

    "poste_idposte" INTEGER NOT NULL, 

    "t" NUMERIC(4,1), 

    "heuremesure" TIME WITHOUT TIME ZONE, 

    "datmesure" DATE, 

    CONSTRAINT "h_part_datmesure_key" UNIQUE("datmesure", "heuremesure", "poste_idposte"), 

    CONSTRAINT "h_part_pkey" PRIMARY KEY("idh"), 

    CONSTRAINT "h_part_fk" FOREIGN KEY ("poste_idposte")

    REFERENCES "public"."poste"("idposte")

    ON DELETE NO ACTION

    ON UPDATE NO ACTION

    NOT DEFERRABLE

  ) WITHOUT OIDS;

   

   

  Data in table are like this :

   

  calendar_temp

  -----------------

  id            dat                         heur

  1             15/03/2008         0:00

  2             15/03/2008         3:00

  3             15/03/2008         6:00

  4             15/03/2008         9:00

  5             15/03/2008         12:00

  6             15/03/2008         15:00

   

  h_part

  -----------------

  idh         poste_idposte  t              heuremesure   datmesure

  5001      275                        8,3          0:00                       15/03/2008

  5002      275                        12           3:00                       15/03/2008

  5003      275                        15           6:00                       15/03/2008

  5004      275                        18           9:00                       15/03/2008

   

  I expect the following data set as a result from the following request : 

   

  SELECT ct.dat,ct.heur,hp.datmesure,hp.heuremesure,hp.t FROM calendar_temp as ct

  LEFT OUTER JOIN h_part as hp

  ON ct.dat = hp.datmesure

  AND ct.heur = hp.heuremesure

  WHERE

  hp.poste_idposte = 275

  ORDER BY ct.dat, ct.heur

   

  dat                         heur      datmesure         heuremesure   t

  -----------------------------------------------------------

  15/03/2008         0:00       15/03/2008         0:00                       8,3

  15/03/2008         3:00       15/03/2008         3:00                       12

  15/03/2008         6:00       15/03/2008         6:00                       15

  15/03/2008         9:00       15/03/2008         9:00                       18

  15/03/2008         12:00     null                        null                        null

  15/03/2008         15:00     null                        null                        null

   

   

  But unfortunatly all that I get is  this set : 

   

  dat                         heur      datmesure         heuremesure   t

  -----------------------------------------------------------

  15/03/2008         0:00       15/03/2008         0:00                       8,3

  15/03/2008         3:00       15/03/2008         3:00                       12

  15/03/2008         6:00       15/03/2008         6:00                       15

  15/03/2008         9:00       15/03/2008         9:00                       18

   

   

  Getting mad with it...

   

  Thanks for any help...

   

   

   

view thread (8+ messages)  latest in thread

Message-ID: <987929295D1345B5BCE249F42730CB82@marktestcr.marktest.pt>
Permalink:  ../987929295D1345B5BCE249F42730CB82@marktestcr.marktest.pt/
Also on:    postgresql.org/message-id/987929295D1345B5BCE249F42730CB82@marktestcr.marktest.pt

 · 

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: oliveiros.cristina@marktest.pt, thomas.bourimech@metnext.com
  Subject: Re: LEFT OUTER JOIN issue
  In-Reply-To: <987929295D1345B5BCE249F42730CB82@marktestcr.marktest.pt>

* 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