webForumDet fria alternativet

Skippa rs i varandara?

ASP

4 svar · 306 visningar · startad av pirajan

Medlem sedan apr. 2001246 inlägg
Frågan#1

Hej!
Det jag är mest nyfiken på är hur jag gör så att man slipper:

set objRs= Databas.Execute("SELECT * From tabell")
  do until objRs.eof
    objRs2 = Databas Execute("SELECT * From tabell2 Where id = " & objRs("id")
  objRs.MoveNext
  Loop
...

Alltså så att man får fram info från en tabell där id = id i en annan tabell och sedan skriver ut det..

Jag vet att det har med Joins att göra, men jag förstår verkligen inte hur jag ska få det att fungera...
HJÄLP!

Medlem sedan jan. 20032 285 inlägg
#2

Kanske något sånt här?

Set objRS = Databas.Execute("SELECT t1.kolumn1, t1.kolumn2, t2.kolumn1, t2.kolumn2 FROM tabell1 t1 RIGHT OUTER JOIN tabell2 t2 ON t1.id = t2.id")
Medlem sedan dec. 200012 464 inlägg
#3

Jo, men inte right outer join. inner join är mer överensstämmande.

Medlem sedan jan. 20032 285 inlägg
#4

LarsG skrev:

Jo, men inte right outer join. inner join är mer överensstämmande.

Ok, jag tänkte kanske lite fel då, då. :)
Kan man kanske göra något sånt här?

strSQL = "SELECT tabell1.*, tabell2.* FROM tabell1, tabell2 WHERE tabell2.id IN (SELECT Id FROM tabell1)"

Fasst du är ju SQL-guden Lars. ;)

Btw, borde väl flyttas till SQL-forumet, eller?

Medlem sedan dec. 200012 464 inlägg
#5

Nej, den varianten är inte bra då du har inte har någon restriktion för tabell1.

Set objRS = Databas.Execute("SELECT t1.kolumn1, t1.kolumn2, t2.kolumn1, t2.kolumn2 FROM tabell1 t1 INNER JOIN tabell2 t2 ON t1.id = t2.id")
247 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)