strSQL = "SELECT * FROM rapporter LEFT OUTER JOIN billeder ON rapporter.id_no = billeder.id LEFT OUTER JOIN kommentar ON kommentar.id = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;"
Men vær opmærksom på at den tager ALLE rækker fra rapporter hvor "ID_no = " & lngRecordNo uanset om der findes tilhørende rækker i de to andre tabeller.
Det er det der kendetegner et OUTER JOIN, modsat et INNER JOIN
Jeg ved ik om jeg kan forklare det på skrift, men LngRecordNo indeholder en id. Den skal så tage alt fra rapporter.id_no som er lig dette. Men derudover skal den tage de rækker fra kommentar og billeder tabellerne hvor kommentar.k_id og billeder.id er lig med rapporter.id_no også....men jeg prøver lige din sql-streng.. Har dårligt styr på det selv :D
Jeg har lige tilrettet SQL'en med det rigtige feltnavn i kommentar. k_id hedder det.. Men jeg får denne fejl
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'rapporter.id_no = billeder.id LEFT OUTER JOIN kommentar ON kommentar.k_id = billeder.id'. /test/krc/darkzone/-fangstrapporter/html/view_selected.asp, line 39
strSQL = "SELECT * FROM rapporter LEFT OUTER JOIN billeder ON rapporter.id_no = billeder.id LEFT OUTER JOIN kommentar ON kommentar.k_id = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;"
strSQL = "SELECT * FROM (rapporter LEFT OUTER JOIN billeder ON rapporter.id_no = billeder.id) LEFT OUTER JOIN kommentar ON kommentar.k_id = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;"
Ellers kan du åbne databasen i Access, og lave dine joins i forespørgselseditoren
<% Session.LCID=1030 %> <% 'if isEmpty(session("UserID")) then ' Response.Redirect "../../bruger/asp/logadmin.asp?msg=" & Server.URLEncode ("Du skal være logget ind for at se fangstrapporter.") 'end if %> <% 'Dimension variables Dim adoCon 'Holds the Database Connection Object Dim rsGuestbook 'Holds the recordset for the record to be updated Dim strSQL 'Holds the SQL query for the database Dim strsql2 Dim lngRecordNo 'Holds the record number to be updated
'Read in the record number to be updated lngRecordNo = CLng(Request.QueryString("ID"))
'Create an ADO connection odject Set adoCon = Server.CreateObject("ADODB.Connection")
'Set an active connection to the Connection object using a DSN-less connection adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/fangster.mdb")
'Set an active connection to the Connection object using DSN connection 'adoCon.Open "DSN=guestbook"
'Create an ADO recordset object Set rsGuestbook = Server.CreateObject("ADODB.Recordset")
'Initialise the strSQL variable with an SQL statement to query the database 'strSQL = "SELECT rapporter.* FROM rapporter WHERE ID_no=" & lngRecordNo 'strSQL = "SELECT * FROM rapporter,billeder WHERE ID_no=" & lngRecordNo & "" & " order by id_nr" 'strSQL = "SELECT * FROM rapporter INNER JOIN billeder on rapporter.id_no = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;" 'strSQL = "SELECT * FROM rapporter LEFT OUTER JOIN billeder on rapporter.id_no = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;" strSQL = "SELECT * FROM (rapporter LEFT OUTER JOIN billeder ON rapporter.id_no = billeder.id) LEFT OUTER JOIN kommentar ON kommentar.k_id = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;"
'Open the recordset with the SQL query rsGuestbook.Open strSQL, adoCon %> <html> <head> <title>View_selected</title> <link rel="stylesheet" type="text/css" href="../../style.css"> <meta http-equiv="Cache-Control" content="no-store"> <meta http-equiv="Pragma" content="no-cache">
<td class="text1" rowspan="9" width="20%" style="border-left: medium none #000000; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom: medium none #000000"> <%if len(rsGuestbook("url"))>0 then
maksbredde = 150 makshojde = 180 ' ' 'Du mangler at ha' komponenten (ImgSize.Check) installeret på serveren Kristian! 'Den bruges til at finde ud af, hvor stort billedet er! 'Måske hedder den noget andet hos din udbyder!? ' Set objImg = Server.CreateObject("ImgSize.Check") objImg.FileName = server.mappath(rsGuestbook("url")) if objImg.Height > makshojde then ratio = objImg.Height / makshojde newheight = objImg.Height /ratio newwidth = objImg.Width /ratio if newwidth > maksbredde then ratio = newwidth / maksbredde newheight = newheight /ratio newwidth = newwidth /ratio end if elseif objImg.Width > maksbredde then ratio = objImg.Width / maksbredde newheight = objImg.Height /ratio newwidth = objImg.Width /ratio if newheight > makshojde then ratio = newheight / makshojde newheight = newheight /ratio newwidth = newwidth /ratio end if else newheight = objImg.Height newwidth = objImg.Width end if
if rsguestbook("id") <> "" then response.write "<b>Ekstra billeder</b><br><br>" dim i i = 0
%>
</td> </tr> </table> <br> <table border='0' cellpadding='0' cellspacing='4' style='border-width:0px; border-collapse: collapse' width='530' id='table2' bordercolor='#000000'> <tr> <% 'Loop through the recordset Do While not rsGuestbook.EOF %> <td class=text1> <a href="<%= rsguestbook("sti")%>" target=_blank> <img src="<%= rsguestbook("sti")%>" border="0" height="<%= newheight %>" width="<%= newwidth %>" align="top"> </a> <%= rsguestbook("tekst")%> </td> <% If i = 3 then response.write "</tr>" response.write "<tr>" i = 0 Else i= i + 1 End If
'Move to the next record in the recordset rsGuestbook.MoveNext
Loop
'response.write "</tr>" 'else 'response.write "<b>ingen ekstra billeder</b><br><br>" End if %>
</table>
</div> <% 'Loop through the recordset Do While not rsGuestbook.EOF %> <% Response.write ("Kommentar") Response.write (rsguestbook("k_id")) Response.write (rsguestbook("Navn")) Response.write (rsguestbook("Kommentar")) Response.write (rsguestbook("Dato")) Response.write (rsguestbook("Tid"))
%> <%
'Move to the next record in the recordset rsGuestbook.MoveNext
Loop %>
</body> </html> </font><% 'Reset server objects rsGuestbook.Close Set rsGuestbook = Nothing Set adoCon = Nothing %>
jeg opretter et nyt spgm og se om der er nogle der har tid til at svare :D
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.