/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
SQL mix...
Fra : Thorbjørn Jørgensen


Dato : 26-04-02 12:48

Hej
Findes der en lettere måde at kombinere disse to sql opslag på...

SQLstmtSpiller = "Select * From medlemmeraktivitet Where seson ='" &
denneseson & "' and hold='" & rsHoldNavne("holdnavnkort") & "' and
aktivitet='Spiller' order by bemaerkning"
Conn.Execute (SQLstmtSpiller)
Set rsSpiller = conn.Execute(SQLstmtSpiller)
If not rsSpiller.EOF then
Do until rsSpiller.EOF
SQLstmtSpillerNavn = "Select * From medlemmer Where id =" &
rsSpiller("medlemid")
Conn.Execute (SQLstmtSpillerNavn)
Set rsSpillerNavn = conn.Execute(SQLstmtSpillerNavn)

Den første sql sætning finder en række medlemid som bliver brugt i den anden
sql sætning. Det skulle gerne kunne lade sig gøre at få data ud på alle de
poster den første sql sætning levere!
Jeg synes at det på denne måde ser noget kluntet ud...

Mvh
Thorbjørn Jørgensen



 
 
Lars Hoffmann (26-04-2002)
Kommentar
Fra : Lars Hoffmann


Dato : 26-04-02 13:01

Thorbjørn Jørgensen <thorbjorn-jorgensen@person.dk> escribió en el
mensaje de noticias aabep4$qqo$1@sunsite.dk...
> Hej
> Findes der en lettere måde at kombinere disse to sql opslag på...

Ja!

> Den første sql sætning finder en række medlemid som bliver brugt i den
anden
> sql sætning. Det skulle gerne kunne lade sig gøre at få data ud på
alle de
> poster den første sql sætning levere!

Foerst og fremmest boer du lade vaere med at bruge "SELECT * ", specielt
naar du kun skal bruge et enkelt felt. Traek kun de felter ud af
database du skal bruge. Dine to SQL saetninger kan smamneskrives til:

sql= "SELECT * FROM medlemmer WHERE id IN (SELECT medlemid FROM
medlemmeraktivitet WHERE seson ='" & denneseson & "' AND hold='" &
rsHoldNavne("holdnavnkort") & "' AND aktivitet='Spiller')"

Hvis du vil bruge "ORDER BY, skal det efter den sidste parantes.
Med venlig hilsen
Lars Hoffmann



LrsN (27-04-2002)
Kommentar
Fra : LrsN


Dato : 27-04-02 19:34

> Findes der en lettere måde at kombinere disse to sql opslag på...

Den måde man gør den slags på er ved at joine de to tabeller. I dit tilfælde
er der tale om navnefeltet fra medlemmer hvor medlemmeraktivitet.medlemId =
medlemmer.id

så SQLsætingen ser ud som flg:

SQLstmtSpiller = "Select m.spillernavn From medlemmeraktivitet as ma " & _
"inner join medlemmer as m" & _
"on ma.medlemid = m.id " & _
"Where ma.seson = '" &denneseson & "' " & _
"and ma.hold='" & rsHoldNavne("holdnavnkort") & "' " & _
"and ma.aktivitet='Spiller' " & _
"order by ma.bemaerkning;"

m og ma er aliases for de forholdsvis lange tabelnavne

se evt.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8
_qd_09_66b7.asp
for inner joins

/Jesper


> SQLstmtSpiller = "Select * From medlemmeraktivitet Where seson ='" &
> denneseson & "' and hold='" & rsHoldNavne("holdnavnkort") & "' and
> aktivitet='Spiller' order by bemaerkning"
> Conn.Execute (SQLstmtSpiller)
> Set rsSpiller = conn.Execute(SQLstmtSpiller)
> If not rsSpiller.EOF then
> Do until rsSpiller.EOF
> SQLstmtSpillerNavn = "Select * From medlemmer Where id =" &
> rsSpiller("medlemid")
> Conn.Execute (SQLstmtSpillerNavn)
> Set rsSpillerNavn = conn.Execute(SQLstmtSpillerNavn)
>
> Den første sql sætning finder en række medlemid som bliver brugt i den
anden
> sql sætning. Det skulle gerne kunne lade sig gøre at få data ud på alle de
> poster den første sql sætning levere!
> Jeg synes at det på denne måde ser noget kluntet ud...
>
> Mvh
> Thorbjørn Jørgensen
>
>



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

Månedens bedste
Årets bedste
Sidste års bedste