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...
Annonceindlæg fra Infor
23. august 2001 - 23:49
#1
noget outer join på sig selv ... på en eller anden måde
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\';
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
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;
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
24. august 2001 - 00:39
#6
Oka, godnat!
24. august 2001 - 00:40
#7
Oka = Okay, hmm har vi røget det samme ;o)
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(+);
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)
Computerworld tilbyder specialiserede kurser i database-management