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 751 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

  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK

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 979
27 965
271 783
602
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