Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sumrera forum, i en select-sats..?

Postades av 2005-12-03 19:54:58 - Johan Svensson, i forum sql-server/msde, Tråden har 7 Kommentarer och lästs av 1029 personer

Hej!

Jag har en tabell som innehåller alla olika forum, denna tabell heter "Forum"
Sen har jag en tabell som innehåller alla inlägg "Forum_Data"

Jag vill slippa göra en select/forum

Det ska gärna se hur som det gör här på Pellesoft

T.ex:

Allmänt
* tråd 1, datum. osv...
* tråd 2, datum. osv...

Offtopic
* tråd 1, datum. osv..

Jag vill göra en select mot "Forum" och sen ska Top10 selectas från "Forum_Data" (sorterade efter datum DESC)

Men hur gör jag det.... Jag har testat lite med LEFT JOIN vilket funkar bra, men hur sätter jag TOP 10
på LEFT JOIN-tabellen ??

Tacksam för svar...

Har ni andra tips är dom självklart också välkomna... ;)

M.v.h.
Johan.NET


Svara

Sv: Sumrera forum, i en select-sats..?

Postades av 2005-12-04 11:30:25 - Mikael Wedham

Posta in din select som nästan funkar, och skriv hur den skall funka, så kan vi ändra på din kod...

/micke


Svara

Sv:Sumrera forum, i en select-sats..?

Postades av 2005-12-04 15:32:44 - Johan Svensson

Så här ser den enkal select-saten ut..

SELECT * FROM Forum F LEFT JOIN Forum_Data FD ON FD.ForumID = F.ID ORDER BY FD.LastDate DESC

Men i denna sats, hämtas ju ALLA poster Forum_Data, jag vill att bara t.ex TOP 10 hämtas från Forum_Data

Jag har provat detta:

SELECT * FROM Forum F LEFT JOIN Forum_Data FD ON FD.ForumID = F.ID WHERE FD.ID IN(SELECT TOp 10 ID FROM Forum_Data WHERE ForumID = F.ID ORDER BY LastDate DESC) ORDER BY FD.LastDate DESC

Men detta tar lååång tid att köra... jag vill ju att select-saten ska gå fort också ;)

M.v.h.
Johan.NET


Svara

Sv: Sumrera forum, i en select-sats..?

Postades av 2005-12-04 17:20:16 - Ola Lindfeldt

Har du indexerat ForumId och LastDate?


Svara

Sv:Sumrera forum, i en select-sats..?

Postades av 2005-12-04 22:29:56 - Johan Svensson

Ja, det har jag,, Forum_Data innehåller drygt 200 tusen poster, om det kan vara av intresse.

Hur fort bör det gå ?

Kom gärna med exempel på hur man kan optimera selectsaten, eller göra på annat vis...

M.v.h.
Johan


Svara

Sv: Sumrera forum, i en select-sats..?

Postades av 2005-12-05 02:09:13 - Andreas Hillqvist

Här är några tips på hur du kan optimera prestanda:
* Använd vyer/sparade frågor
* Öppna recordeset forward only read only
* Använd variabler för fält
* Använd Command objektet
* Ordentlig HTML kod med CSS som kan börja renderas innan sidan är helt nedladdad

Detta är ett exempel:

<%
Dim Connection 'As ADODB.Connection
Dim rsForums 'As ADODB.Recordset
Dim cmdThreads 'As ADODB.Command

Const adCmdStoredProc = 4
Const adOpenForwardOnly = 0
Const adLockReadOnly = 1
Const adCmdTable = 2

    Set Connection = CreateObject("ADODB.Connection")
    Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" + _
                    "Persist Security Info=False;" + _
                    "Data Source=" & Server.MapPath(ForumDB.mdb) & ";"
    
    Set cmdThreads = CreateObject("ADODB.Command")
    Set cmdThreads.ActiveConnection = Connection
    cmdThreads.CommandText = "qrySelectThreadsTop10ByForum"
    cmdThreads.CommandType = adCmdStoredProc
    cmdThreads.Parameters.Append cmdThreads.CreateParameter("ForumId", adInteger, adParamInput)
    cmdThreads.Prepared = True
    
    Set rsForums = CreateObject("ADODB.Recordset")
    rsForums.Open "qrySelectForums", Connection, adOpenForwardOnly, adLockReadOnly, adCmdTable
    WriteForums rsForums, _
                rsForums("ForumId"), _
                rsForums("ForumName"), _
                cmdThreads, _
                cmdThreads("ForumId")
    rsForums.Close
    
    Connection.Close
End Sub

Private Sub WriteForums(rsForums, fldForumId, fldForumName, cmdThreads, pForumId)
Dim rsThreads 'As ADODB.Recordset
    Response.Write "<table>"
    Set rsThreads = CreateObject("ADODB.Recordset")
    Do Until rsForums.EOF
        Response.Write "<tr>"
        Response.Write "<td colspan=""3"">"
        Response.Write ""
        Response.Write Server.HTMLEncode(fldForumName.Value)
        Response.Write ""
        Response.Write "</td>"
        Response.Write "</tr>"
    
        pForumId.Value = fldForumId.Value
        rsThreads.Open cmdThreads, , adOpenForwardOnly, adLockReadOnly
        WriteThreads rsThreads, _
                     rsThreads("ThreadId"), _
                     rsThreads("ThreadCreated"), _
                     rsThreads("ThreadSubject")
        rsThreads.Close
        
        rsForums.MoveNext
    Loop
    Response.Write "</table>"
End Sub

Private Sub WriteThreads(rsThreads, fldThreadId, fldThreadCreated, fldThreadSubject)
    Do Until rsThreads.EOF
        Response.Write "<tr>"
        Response.Write "<td></td>"
        Response.Write "<td>"
        Response.Write FormatDateTime(fldThreadCreated.Value, vbShortDate)
        Response.Write "</td>"
        Response.Write "<td>"
        Response.Write ""
        Response.Write Server.HTMLEncode(fldThreadSubject.Value)
        Response.Write ""
        Response.Write "</td>"
        Response.Write "</tr>"
        rsThreads.MoveNext
    Loop
End Sub

%>


Svara

Sv: Sumrera forum, i en select-sats..?

Postades av 2005-12-05 13:37:12 - Mikael Wedham

SELECT *
FROM Forum F
LEFT OUTER JOIN
(SELECT TOP 10 * FROM Forum_Data ORDER BY LastDate) FD
ON FD.ForumID = F.ID
ORDER BY FD.LastDate DESC

/micke


Svara

Sv:Sumrera forum, i en select-sats..?

Postades av 2005-12-05 15:43:20 - Andreas Hillqvist

JAg har tolkat det som att det skall vara max tio från varje forum.
Mikael, din SQL ger tomma forum om det första innehåller tio st.


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 880
27 965
271 776
647
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies