webForumDet fria alternativet

Loop utan två connections

ASPur ASP

3 svar · 278 visningar · startad av Janspeed

JanspeedMedlem sedan jan. 2001510 inlägg
#1

Har en accessdatabas med en massa information om användare.

Om samma användare har två poster i tabellen så ska dessa loopas ut.

Nu är det dock så att om ett fält i posten är = ja så betyder det att den raden även har information i en annan tabell i form av en eller flera poster. Det betyder att den informationen också borde loopas ut.

Jag funderade på att lösa det med en Join men skulle det i så fall verka som om användaren har fler än 2 poster.

Det andra alternativet var om jag skulle göra en helt ny connection och loopa genom men det känns väl väldigt prestandakrävande?

Jag är inte så insatt i det här med relationer och relationsdatabaser. Finns det något smart sätt att lösa detta på? Antingen i ASP:n eller i SQL:en?

Några förslag?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Jag funderade på att lösa det med en Join men skulle det i så fall verka som om användaren har fler än 2 poster.

Nej, så borde det inte verka.

Det du skulle vilja göra är en outer join mot tabellen som har data om ett fält har värdet 'ja'. Dvs: det ska gå alldeles utmärkt att lösa med en SQL-fråga.

Mer än ett connectionobjekt behöver du aldrig. Möjligen mer än ett recordsetobjekt, men recordset != connection.

Mvh,

JanspeedMedlem sedan jan. 2001510 inlägg
#3

Ok låt se om jag förstått detta rätt.

För att slå ihop posterna gör jag en outer join men Hur ser recordsetet ut då?

låt säga att jag har två tabeller typ:

tblAnvändare

Post;användare;lösen;plats;smurfID;E_en_smurf
1;farbror blå;smurf;smurfbyn;10;ja
2;farbror blå;smurf;tomteskogen;11;nej

tblSmurferfarenhet
smurfID;position;Smurfmedaljer
10;1;320
10;2;150

Tidigare så har jag loopat ut dessa med

Select * From tblAnvändare

Do Until rs.EOF

Response.Write "Du finns i: " & rs("Plats") & "<br>"

Loop

Nu vill jag även lägga till hur många medaljer denne har typ:

Do Until rs.EOF

Response.Write "Du finns i: " & rs("Plats") & "<br>"

Do until nånting

Response.Write "Du har på position " & rs("position") & ": " & rs("smurfmedaljer") & " smurfmedaljer"

Loop

Loop

Men det funkar väl inte om jag gör en outer join? eller?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Om du gör en outer join blir det som om de två recordseten läggs bredvid varandra. Du får minst en post per användare i tblAnvändare. Finns inget i den andra tabellen blir de fälten null, och finns där motsvarande poster får du en post i det resulterande recordsetet per post som uppfyller joinvillkoret i högertabellen.

Det blir alltså ett litet annat sätt att loopa ut din data på, men borde inte bli så mycket svårare.

Mvh,

127 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)