webForumDet fria alternativet
Logga in / Bli medlem

Simpelt?

Databaser & SQL

3 svar · 139 visningar · startad av LilleSkutt

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

Om jag har två tabeller, en med en massa poster där användarna kan ha flera poster och en annan tabell där användarna endast har en post som kommer uppdateras.

Kan jag göra så här då:

sql = "SELECT tbl1.*, tbl2.poang FROM tbl1, tbl2 WHERE tbl1.user = '" & anvandare & "' AND tbl2.user = '" & anvandare & "'"

set rs = conn.execute(sql)

do until rs.eof

response.write "Bil: " & rs("tbl1.bil") & ", poäng: " & rs("tbl2.poang") & "<br>"

rs.movenext
loop

rs.close
conn.close

Kommer jag då få samma poäng på varje bil? Det ska det nämligen vara...

Medlem sedan dec. 200012 464 inlägg
#2

Ja.

Medlem sedan feb. 2001265 inlägg
#3

Tack LarsG, nu får du en följdfråga :)

Om jag från en tabell, som kan vara tom, hämtar information, och sedan hämtar ett värde från en annan tabell som finns med en och samma fråga, kommer recordsettet betraktas som tomt då?

Alltså, med ovanstående kod; Om tbl1 är tom, men tbl2.poang existerar, kommer recodsetet betraktas som tomt?

Medlem sedan dec. 200012 464 inlägg
#4

Ja.

Jag kan väl svara på nästa fråga på en gång.

sql = "SELECT tbl1.*, tbl2.poang FROM tbl2 left outer join tbl1 on tbl2.user = tb1l1.user WHERE tbl2.user = '" & anvandare & "'"

Nu får du alla poster i tbl2 där user = anvandare. Om det inte finns någon matchande post i tbl1 så får du null i de kolumner som kommer från tbl1.

OT: user är inte bra som kolumnnamn då det är ett reserverat ord i ganska många DBMS och även i ANSI-sql.

271 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)