Avatar billede tdh1309 Juniormester
27. juli 2007 - 22:05 Der er 9 kommentarer og
1 løsning

Problemer med tabel udtræk, det skal måske være en join

Hej

Jeg tror løsningen er eller anden form for join men jeg kan ikke lige selv udtænke den.

Jeg har to tabeller:

Tabel1            Tabel2
Id    Navn        Id    Gruppe
1      Thomas      1    Cykling
2      Ole        1    Fodbold
3      Hans        1    Inaktiv
                  2    Fodbold
                  3    Fodbold
                  3    Inaktiv

Jeg vil nu gerne lave et udtræk alla'
Select tabel1.id, tabel1.navn from
tabel1, tabel2 Where (
tabel1.id = tabel2.id AND
tabel2.Gruppe = 'Fodbold')

Dette resulterer i
1      Thomas
2      Ole
3      Hans 

Mit ønske er at jeg ikke fik dem hvor personen var markeret
som 'inaktiv' altså mit resultat skal være:
2      Ole

Jeg tror det er relativt simpelt hvis man er skrap i SQL - det er jeg åbentbart ikke :-(
Avatar billede tdh1309 Juniormester
27. juli 2007 - 22:06 #1
Hov - mine tabeller var ikke så læsbare, så jeg prøver lige at sætte dem bedre op!
Tabel1           
Id    Navn       
1      Thomas     
2      Ole       
3      Hans 

Tabel2
Id    Gruppe
1    Cykling
1    Inaktiv
1    Fodbold
2    Fodbold
3    Fodbold
3    Inaktiv
Avatar billede Slettet bruger
27. juli 2007 - 22:10 #2
er det ikke bare tilføjelse af

and tabel2 <> 'inaktiv'

eller lignende
Avatar billede Slettet bruger
27. juli 2007 - 22:11 #3
hov skulle være

and tabel2.Gruppe <> 'inaktiv'
Avatar billede tdh1309 Juniormester
27. juli 2007 - 22:14 #4
Nej, det er desværre en anelse mere kompliceret.
Hvis du kigger på det udtræk jeg får (se ovenstående tabel) så er tabel2.Gruppe <> 'inaktiv' jo rent faktisk inaktiv i den række.

Løsningen er noget med at jeg først selecter hvor tabel2.Gruppe <> 'inaktiv', og ud fra det resultat på en eller anden måde så selecter videre....

Det er lidt kringlet men jeg håber at det er forklaret godt nok?
Avatar billede kalp Novice
27. juli 2007 - 22:27 #5
Select tabel1.id, tabel1.navn from
tabel1, tabel2 Where tabel1.id NOT IN ( select tabel2.id from tabel2 where tabel2.id = table1.id and table2.gruppe = 'Inaktiv' ) and
(tabel1.id = tabel2.id AND
tabel2.Gruppe = 'Fodbold')
Avatar billede kalp Novice
27. juli 2007 - 22:27 #6
Du skal muligvis navngive kolonnerne noget forskelligt.. altså med "as xx" hvis den brokker sig.
Avatar billede Slettet bruger
27. juli 2007 - 22:32 #7
hov ja, min fejl, hmm
Avatar billede tdh1309 Juniormester
27. juli 2007 - 22:37 #8
Det virker jo perfekt - tak for hjælpen kalp....
Kom med et svar så vi kan afregne, og god aften til jer begge
Avatar billede kalp Novice
27. juli 2007 - 22:38 #9
Det får du her:D
og god aften til dig også;)
Avatar billede tdh1309 Juniormester
27. juli 2007 - 22:40 #10
Jeg sad selv og forsøgte på den måde du foreslog, men min syntaks er pilrådden - så super at du kunne hjælpe så hurtigt !
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