SELECT * FROM tblAlbum INNER JOIN tblAktiviteter a2 ON a1.fldAlbum=a2.fldAlbum WHERE a1.ID=" & idnumret & "
Kanske?
10 svar · 631 visningar · startad av Gardell
Hej!
Jag kan inte särskilt mycket om dessa SQL-strängar, men jag antar att jag behöver göra en inner join på en annan tabell.
Det jag ska göra är först och främst att lista olika Albumnamn ur en tabell vid namn tblAlbum. Detta namn skickar jag sedan vidare med querystring till en sida som plockar fram bilder ur en tabell vid namn tblAktiviteter där "fldAlbum" är samma som det medskickade värdet i querystringen. Men, att skicka med ett namn i querystringen känns inte så bra, samtidigt som jag nu även måste ha ett värde ur tblAlbum. Så det bästa är väl att skicka med ett ID (det som finns för vart och ett albumnamn i tblAlbum) och med det plocka fram namnet på albumet och sedan sortera ut posterna i det albumet i tblAktiviteter. Nu blev det rörigt kanske..
Det jag vill ha är en inner join på tblAlbum som plockar fram namnet på albumet med det medskickade ID:et, med det namnet ska jag sedan plocka fram posterna i tblAktiviteter där fldAlbum är lika med namnet på albumet. Samtidigt ska jag också plocka ut beskrivningen på albumet, fldDesc från fldAlbum..
Min nuvarande kod:
"SELECT * FROM tblAktiviteter WHERE fldAlbum = '" & strShowAlbum & "' ORDER BY fldCount DESC"
Hoppas nån förstår vad jag menar.. :)
SELECT * FROM tblAlbum INNER JOIN tblAktiviteter a2 ON a1.fldAlbum=a2.fldAlbum WHERE a1.ID=" & idnumret & "
Kanske?
Ska Fredde Mannens exempel fungera får du ge tabellen tblAlbum aliaset a1 i din sql-fråga.
SELECT * FROM tblAlbum a1
INNER JOIN tblAktiviteter a2
ON a1.fldAlbum=a2.fldAlbum
WHERE a1.ID=" & idnumret
Byt gärna * mot en lista på fältnamnen du vill hämta.
huhu.. se där missade visst denna karl något.. första aliaset! :r
Tack så mycket! :)
Hur plockar jag nu ut ett speciellt värde ur den ena eller andra tabellen? Vanligtvis kör jag ju t.ex. objRS("fldAlbum").
Finns ju lite olika alternativ. Antingen gör du som vanligt. Eller om du har kolumner i båda tabellerna som heter samma kan du hämta på position eller alias.
SELECT a1.bleb, a2.bleb FROM table a1 ...
Då blir a1.bleb objRS(0) och a2.bleb objRS(1). Så fortsätter det genom hela selectlistan.
Eller:
SELECT a1.bleb AS xxx, a2.bleb AS yyy FROM table a1 ...
Då blir det objRS("xxx") och objRS("yyy").
Tack för svaret!
Jag förstår.. nästan. Jag provade att göra som vanligt, men får då "Item cannot be found in the collection corresponding to the requested name or ordinal.". Det andra med position/alias, var ska jag lägga det? I SQL-satsen kanske?
I övrigt så kanske mitt upplägg är lite lurigt..
<div class="topContDiv">
Bilder ur <%=objRS("fldAlbum")%>.<br /><%=objRS("fldDesc")%>
</div>
<% Do Until objRS.EOF %>
<div>
<img src="../<%=objRS("fldFilename")%>" alt="<%=objRS("fldFilename")%>" /><br /><%=objRS("fldDesc")%>
</div>
<%
objRS.MoveNext
Loop
%>
Sådär ser det ut. De två första innan Do.Until ska tas från tblAlbum, och resten från tblAktiviteter..
Första kolumnen i din sql-fråga blir objRS(0), den andra objRS(1), den tredje objRS(2), den fjärde objRS(3). OSV.
När du vill skriva ut den andra kolumnen i din select-lista skriver du alltså:
<%=objRS(1)%>
eller
response.write objRS(1)
Jag gav dig ett exempel på alias ju. I din sql-fråga ger du en kolumn ett unikt tillfälligt namn med "AS namnet". Sedan skriver du ut det som jag visade:
<%=objRS("namnet")%>
eller
response.write objRS("namnet")
Stort tack K@llen för att du hjälper mig! :) Men ojoj, har försökt ta itu med det här igen nu.. Men jag förstår inte mycket av det där alias och sånt, verkar finnas så många kombinationer för den här lösningen.. Har provat fram och tillbaka men det blir inte rätt.. :(
Min SQL-sats just nu:
strSQL = "SELECT * FROM tblAlbum a1 INNER JOIN tblAktiviteter a2 ON a1.fldAlbum=a2.fldAlbum WHERE a1.fldCount=" & strShowID & ""
Och det jag vill är att med IDet plocka fram ett specifikt namn ur kolumnen fldAlbum från tabellen tblAlbum. Resten, kolumnerna fldDesc och fldFilename ska gå i en loop från tabellen tblAktiviteter..
Jag vet inte hur jag ska få ut värdena ur databasen, lyckas inte formulera det hela rätt..
Där ser man.. så sant så!