/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
[postgres] og outerjoin
Fra : dfg


Dato : 16-07-01 23:28

Hejsa

Er der en måde hvor på man kan lave en outerjoin i postgres ?
Så vidt jeg ved er outerjoin ikke implementeret, men kan man skrive
noget SQL der er ækvivalent med en outerjoin ?

Mvh.
Jesper Kampfeldt



 
 
Poul-Erik Andreasen (17-07-2001)
Kommentar
Fra : Poul-Erik Andreasen


Dato : 17-07-01 01:51

dfg wrote:
>
> Hejsa
>
> Er der en måde hvor på man kan lave en outerjoin i postgres ?
> Så vidt jeg ved er outerjoin ikke implementeret, men kan man skrive
> noget SQL der er ækvivalent med en outerjoin ?


Outer join er implementeret i den nyeste version 7.1.2, hvornår det er

Kommet med ved jeg ikke, jeg sidder selv med 7.0.3 der er det ikke med.

Poul-Erik

dfg (17-07-2001)
Kommentar
Fra : dfg


Dato : 17-07-01 03:39


"Poul-Erik Andreasen" <poulerik@pea.dk> wrote in message
news:3B538BF6.A6CE5A0B@pea.dk...

> Outer join er implementeret i den nyeste version 7.1.2, hvornår det er
>
> Kommet med ved jeg ikke, jeg sidder selv med 7.0.3 der er det ikke med.

Ok, men jeg orker ikke at installere en ny version, med mindre det er
absolut nødvendigt,
så hvis nogel ved hvordan man skriver noget der ækvivalent med en outer join
så vil jeg være taknemlig.

Problemmet er at jeg skal joine to tabler hvor jeg i den ene table muligvis
ikke har noget data, men da jeg stadigvæk gerne vil have dataen fra den
anden table ud af min query med NULL de steder hvor der ikke er data fra den
første table overvejede jeg at bruge FULL OUTER JOIN!?

Mvh.
Jesper



Poul-Erik Andreasen (17-07-2001)
Kommentar
Fra : Poul-Erik Andreasen


Dato : 17-07-01 04:36

dfg wrote:
>
> "Poul-Erik Andreasen" <poulerik@pea.dk> wrote in message
> news:3B538BF6.A6CE5A0B@pea.dk...
>
> > Outer join er implementeret i den nyeste version 7.1.2, hvornår det er
> >
> > Kommet med ved jeg ikke, jeg sidder selv med 7.0.3 der er det ikke med.
>
> Ok, men jeg orker ikke at installere en ny version, med mindre det er
> absolut nødvendigt,
> så hvis nogel ved hvordan man skriver noget der ækvivalent med en outer join
> så vil jeg være taknemlig.
>
> Problemmet er at jeg skal joine to tabler hvor jeg i den ene table muligvis
> ikke har noget data, men da jeg stadigvæk gerne vil have dataen fra den
> anden table ud af min query med NULL de steder hvor der ikke er data fra den
> første table overvejede jeg at bruge FULL OUTER JOIN!?

Hva med sådan noget som det her i på select

where a.foo = b.foo ||    # det er det inner join

(a.foo ~= 0 && b.foo = 0)    #her testes så på om der er noget på den
ene
            #samtidig med at det kræves at der ikke er                #noget den anden

Jeg ved ikke om det virker og du skal i alt fald have tilpasset
syntaksen efter
hvilken type variabel.Hmm Jeg kan ikke lige huske om der kan forhøres om
eksisten i expresion


Poul-Erik

> Mvh.
> Jesper

Kristian Damm Jensen (17-07-2001)
Kommentar
Fra : Kristian Damm Jensen


Dato : 17-07-01 08:45

dfg wrote:
>
> "Poul-Erik Andreasen" <poulerik@pea.dk> wrote in message
> news:3B538BF6.A6CE5A0B@pea.dk...
>
> > Outer join er implementeret i den nyeste version 7.1.2, hvornår det er
> >
> > Kommet med ved jeg ikke, jeg sidder selv med 7.0.3 der er det ikke med.
>
> Ok, men jeg orker ikke at installere en ny version, med mindre det er
> absolut nødvendigt,
> så hvis nogel ved hvordan man skriver noget der ækvivalent med en outer join
> så vil jeg være taknemlig.
>
> Problemmet er at jeg skal joine to tabler hvor jeg i den ene table muligvis
> ikke har noget data, men da jeg stadigvæk gerne vil have dataen fra den
> anden table ud af min query med NULL de steder hvor der ikke er data fra den
> første table overvejede jeg at bruge FULL OUTER JOIN!?


select a.a1, b.b1
from a outer join b on a.c = b.c

kan omskrives til

-- Først en inner join
select a.a1, b.b1
from a
, b
where a.c = b.c

union

-- og dernæst de resterende fra a
select a.a1, NULL as b1
from a
where not exists
(select * from b
where a.c = b.c)

Enkelt, ikke sandt!

Det er fantastisk, hvad man kan opnå med en union.

--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com



dfg (18-07-2001)
Kommentar
Fra : dfg


Dato : 18-07-01 01:52

> Enkelt, ikke sandt!
>
> Det er fantastisk, hvad man kan opnå med en union.

Det er korrekt, og så virker det. thx.

Jesper



Søg
Reklame
Statistik
Spørgsmål : 177513
Tips : 31968
Nyheder : 719565
Indlæg : 6408608
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste