Just nu i M3-nätverket
Jump to content

Sätta WHERE-satsen i en loop?


Rolf

Recommended Posts

Jag ska koppla två databaser, en med filmer och en med medlemmar (som alltså har gjort filmerna)

rsFilmarkiv innehåller flera yrkesroller som antingen kan vara skrivet namn eller referens till medlemsdatabasen. Trixet är alltså att få ut medlemsnamnet då det inte ligger i filmdatabasen. Inner join funkar väl inte då det kan finnas flera roller (RegiID, FotoID osv)

 

Så här vill jag att det ska funka:

 

<% DO UNTIL rsFilmarkiv.EOF %>

<%=rsFilmarkiv("Titel")%>

Regi: <% If rsFilmarkiv("RegiID")<> "" then %>1

<% DO UNTIL rsMember("MemberID") = rsFilmarkiv("RegiID") OR rsMember.EOF %>

 

<%= rsMember("fornamn")%>&nbsp;<%= rsMember("efternamn")%>

<%rsMember.MoveNext

loop%>

<% Else %><%=rsFilmarkiv("Regi")%>

<% End If %>

 

<%rsFilmarkiv.MoveNext

LOOP%>

Det går ju förstås att skapa ett nytt Recset för varje post men det blir väl inte så prestandamässigt bra.

Link to comment
Share on other sites

en sql-sats kan nog vara lösningen, om jag förstog dig rätt..

 

SELECT f.Titel, m.fornamn, m.efternamn

FROM filmdatabasen f, medlemsdatabasen m

WHERE f.RegiID = m.MemberID

 

Link to comment
Share on other sites

Om du vill ha fram namn på både regissör och fotograf i samma fråga så går det

 

select foto.fornamn as ffornamn,
      foto.efternamn as fefternamn,
      regi.fornamn as rfornamn,
      regi.fornamn as refternamn,
      titel
 from members as foto, 
      filmarkiv as fa,
      members as regi
where foto.memberid = fa.fotoid
 and fa.regiid = regi.memberid

 

Frågan förutsätter att alla filmer har både fotograf och regissör. Om det saknas så får du byta till outer join.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...