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


Hjälp med selectsats...

Postades av 2003-12-04 20:51:22 - Johan Svensson, i forum databaser, Tråden har 2 Kommentarer och lästs av 758 personer

Hej!

Har nu grubblat på detta väldigt läge.. testat fram och tillbaka.. och nu har jag gett
upp.. =(
Jag har en selectsats som funkar, men dock inte så snabb

Någon här som kanske kan hjälpa mig...

Jag ha en tabell till mitt forum som heter "Forum_Data"

Så här ser strukturen ut:
| ID | ForumID | TopicID | UserID | Topic | Text | Datum |

Ett huvudinlägg får ju automatiskt ett ID... och jag sätter TopicID = 0
Och alla svar lägger in huvudinläggets ID under TopicID... om ni förstår...

(Man kan inte svara på ett svar, så det är bara 2 nivåer)

Nu vill jag göra en selectsats som presenterar alla huvud inlägg i datum ordning...

det jag kör fast på är att om jag bara skriver "SELECT * FROM Forum_Data ORDER BY Datum DESC"
så kan det ju komma många svar från samma huvudinlägg efter varann...
Jag har testat:
"SELECT TopicID, Max(Datum) AS LastDatum FROM Forum_Data FD WHERE ForumID = 6 GROUP BY TopicID ORDER BY LastDatum DESC"
Men då grupperas alla huvudinlägg som har TopicID = 0 med varann...

denna select funkar:
"SELECT TOP 100 FD1.*,
IsNull((SELECT MAX(Datum) FROM Forum_Data FD2 WHERE FD2.TopicID = FD1.ID), FD1.Datum) AS SenasteInlagget,
IsNull((SELECT TOP 1 UserID FROM Forum_Data FD2 WHERE FD2.TopicID = FD1.ID ORDER BY Datum DESC), FD1.UserID) AS LastUserID
FROM Forum_Data FD1 WHERE FD1.TopicID = 0 AND FD1.ForumID = 1
ORDER BY SenasteInlagget DESC"

Jag vet att denna selectsats är seg på grund av att den gör 2 nya select för varje rad..
och dessutom sorterar... därför har jag TOP 100... men det måste gå att fixa på något
bättre sätt...

Jätte tacksam för hjälp.... ;)
Mvh
Johan.NET


Svara

Sv: Hjälp med selectsats...

Postades av 2003-12-05 08:26:53 - Johan Djupmarker

Skrivet ur huvudet, så det lär nog inte fungera... Men det borde gå att jobba vidare på, tror att principen ska fungera, men det är ju ingen garanti ;) Om det sedan är snabbare vet jag inte, men det borde det vara.

SELECT TOP 100 FD1.ID, FD1.TopicID, FD1.Topic, FD1.[Text], FD1.UserID, IsNull(FD3.UserID, FD1.UserID) AS LastUserID, IsNull(FD3.Datum, FD1.Datum) AS SenasteInlagget
FROM Forum_Data FD1 LEFT JOIN Forum_Data FD2 ON FD1.ID = FD2.TopicID LEFT JOIN Forum_Data FD3 ON FD1.ID = FD3.TopicID AND FD3.Datum = MAX(FD2.Datum)
WHERE FD1.TopicID = 0 AND FD1.ForumID = 1
GROUP BY FD1.ID, FD1.TopicID, FD1.Topic, FD1.[Text], FD1.UserID, FD3.UserID, FD3.Datum, FD1.Datum
ORDER BY SenasteInlagget DESC

/Johan


Svara

Sv: Hjälp med selectsats...

Postades av 2003-12-05 18:03:31 - Johan Djupmarker

Efter lite kontakt via iMail tror jag att detta fungerar:

SELECT
FD1.ID, FD1.ForumID, FD1.TopicID, FD1.UserID,
FD1.Topic,
FD1.Visat,
FD1.Häftad,
FD1.HäftadTxt,
FD1.Bevakas,
Count(FD2.ID) AS AntalSvar,
IsNull(FD3.UserID, FD1.UserID) AS LastUserID,
IsNull(FD3.Datum, FD1.Datum) AS SenasteInlagget
FROM
Forum_Data FD1 LEFT JOIN Forum_Data FD2 ON FD1.ID = FD2.TopicID LEFT JOIN Forum_Data FD3 ON FD1.ID = FD3.TopicID
WHERE FD1.TopicID = 0 AND FD1.ForumID = 1 AND FD1.Deleted = 0 AND IsNull(FD2.Deleted, FD1.Deleted) = 0 AND IsNull(FD3.Deleted, FD1.Deleted) = 0
GROUP BY FD1.ID, FD1.ForumID, FD1.TopicID, FD1.UserID, FD1.Topic, FD1.Visat, FD1.Häftad, FD1.HäftadTxt, FD1.Bevakas, FD3.UserID, FD3.Datum, FD1.Datum
HAVING IsNull(FD3.Datum, 0) = IsNull(MAX(FD2.Datum), 0)
ORDER BY FD1.Häftad DESC, SenasteInlagget DESC

/Johan


Svara

Nyligen

  • 22:14 Er vaskbare moppeputer til Roboroc
  • 01:09 Совместные покупки
  • 19:41 Kataloger med erbjudanden för vuxn
  • 19:40 Kataloger med erbjudanden för vuxn
  • 18:00 Online med coola bonusar
  • 17:59 Rekommendation för en spelsajt
  • 17:58 En snabb och trevlig sajt utan lag
  • 20:23 Tips för att välja rätt CBD-styrka

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 571 806
27 969
271 828
9 074
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