webForumDet fria alternativet

Hämta data från 2 tabeller i en loop

ASP

2 svar · 284 visningar · startad av Cmart

Medlem sedan feb. 200269 inlägg
Frågan#1

Jag har en produktsida där jag listar alla produkter som finns i en tabell i access-databasen. Till varje produkt finns x antal bilder som finns listade i en annan tabell där fältet produkt_id är samma som ID för produkten. Nu kör jag en "loop i loopen" som nedan:


strSQL="SELECT * FROM tblProdukter ORDER BY fldRubrik ASC;"

set Fraga=Database.Execute(strSQL)

Do While Not Fraga.EOF

......info om produkten listas här

strSQL2="SELECT fldBildfil FROM tblProdbilder where fldProdukt_ID = "&Fraga("ID")&" ORDER BY ID ASC;"
set Fraga2=Database.Execute(strSQL2)
Do While Not Fraga2.EOF

....här kommer alla bilder på produkten

Fraga2.movenext
Loop
Fraga2.Close
Set Fraga2 = nothing

Fraga.movenext
Loop

Fraga.Close
Set Fraga = nothing

Det funkar iofs helt ok men jag undrar om det finns ett snabbare och smidigare sätt ex. genom att joina tabellerna i en enda sql-sats?

Medlem sedan nov. 20017 144 inlägg
#2

left outer join kanske klarar biffen. Sök i sql-forumet.

Medlem sedan feb. 200269 inlägg
#3

Försöker med följande:

strSQL="SELECT tblProdukter.ID AS ID, tblProdukter.fldRubrik AS Rubrik," _
& " tblProdukter.fldBeskrivning AS Beskrivning, tblProdbilder.fldBildfil" _
& " AS Bildfil FROM tblProdukter LEFT OUTER JOIN tblProdbilder ON" _
& " tblProdukter.ID = tblProdbilder.fldProdukt_id WHERE"_
& " tblProdukter.fldKategori = '"&db&"' ORDER BY tblProdukter.fldRubrik ASC;"

För varje bildfil listar den nu beskrivning och rubrik varje gång, dvs samma produktinformation visas lika många gånger som det finns bilder till produkten:

[Produkt1]
Rubrik
Beskrivning
bild1

[Produkt1]
Rubrik
Beskrivning
bild2

[Produkt1]
Rubrik
Beskrivning
bild3

Detta vill jag inte utan:

[Produkt1]
Rubrik
Beskrivning
bild1
bild2
bild3

[Produkt2]
Rubrik
Beskrivning
bild1
bild2
bild3

osv...

248 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)