webForumDet fria alternativet

Simpelt?

3 svar · 137 visningar · startad av LilleSkutt

LilleSkuttMedlem sedan feb. 2001264 inlägg
#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...

------------------
---
/* LilleSkutt */

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Ja.

------------------
essentitia preter non sans multiplicandum

LilleSkuttMedlem sedan feb. 2001264 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?

------------------
---
/* LilleSkutt */

LarsGMedlem sedan dec. 200012 465 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.

------------------
essentitia preter non sans multiplicandum

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb