Avatar billede Lasse Novice
23. august 2001 - 23:44 Der er 8 kommentarer og
1 løsning

drej denne sql sætning

Jeg har én tabel med kolonnerne:
navn|tal

begge kolonner er med i primærnøglen.

Det jeg gerne vil have

distinct tal|navn OR null(hvis navnet ikke stemmer overens med et tal)

Hvordan gøres dette... jeg kigger selv lidt på de der forskellige joins, men bliver ikke klog på det...




Avatar billede Lasse Novice
23. august 2001 - 23:49 #1
noget outer join på sig selv ... på en eller anden måde
Avatar billede Lasse Novice
23. august 2001 - 23:53 #2
jeg kan lave de to sql sætninger som skal left outer joines

1) select distinct tal from table1;
2) select tal, navn from table1 where navn=\'navn1\';
Avatar billede Lasse Novice
24. august 2001 - 00:02 #3
ahhhh... fuck, det er helt forkert....

jeg har 2 tabeller..

den ene taldet tal
tabel1(primærnøgle tal)
tal|beskrivelse
1|tal1
2|tal2
3|tal3
4|tal4

tabel2(begge i primærnøgle)
tal|navn
1|sprade
1|spade
2|sprade
3|abe

Jeg vil nu gerne bruge navnet abe:
tal|navn
1|null
2|null
3|abe
Avatar billede Lasse Novice
24. august 2001 - 00:36 #4
har selv fundet ud af det...

select a.tal, b.navn
from table1 a LEFT OUTER JOIN (select tal, navn from table2 where navn=\'abe\') b
on a.tal = b.tal;
Avatar billede nordclc Nybegynder
24. august 2001 - 00:38 #5
Hvad har du røget gooky! ;o) Jeg forstår intet!!!

Du har nedenstående og forventer at få hvad?:

tabel1(primærnøgle tal)
tal|beskrivelse
1|tal1
2|tal2
3|tal3
4|tal4

tabel2(begge i primærnøgle)
tal|navn
1|sprade
1|spade
2|sprade
3|abe
Avatar billede nordclc Nybegynder
24. august 2001 - 00:39 #6
Oka, godnat!
Avatar billede nordclc Nybegynder
24. august 2001 - 00:40 #7
Oka = Okay, hmm har vi røget det samme ;o)
Avatar billede molan Nybegynder
28. august 2001 - 14:49 #8
Er dette hvad du skrv?

select a.tal, b.navn
from table1 a, (select tal, navn from table2 where navn=\'abe\') b
where a.tal = b.tal(+);

Så kan den også skrive sådan:

select b.tal, b.navn
from table1 a, table2 b
where a.tal = b.tal(+);
Avatar billede Lasse Novice
28. august 2001 - 18:00 #9
ja, men (+) metoden ser jeg helst undgået da det i en senere version af oracle bliver fjernet(i flg. oracle OTN)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester