webForumDet fria alternativet

3 tabeller

4 svar · 807 visningar · startad av Arne

ArneMedlem sedan maj 2000267 inlägg
#1

Har en grid där jag visar medlemmar som valt att visa sin blogg.
Mitt problem är att jag skulle välja lägga till en kolumn och sortering från tabellen "blogg" där den som senast skrivit ett inlägg visas överst. Men mina tappra försök att lägga till tabellen "blogg" i select satsen nedan gör att ett namn visas antalet ggr som medlemmen har skrivet ett inlägg.

tabellen heter blogg och kolumnen fidnr = f.id
Kolumnen "inlagddatum" i tabellen blogg är smalldatetime

Så här ser nuvarande select sats ut (utan tabellen blogg)

SELECT f.id, f.klubbid, f.namn, f.ort, k.klubb FROM dbo.fidreg AS f INNER JOIN dbo.sdsfklubb AS k ON f.klubbid = k.id Where visa_blogg = @visa_blogg And blogg = @blogg

Använder MS SQL server 2008

plekanecMedlem sedan dec. 201027 inlägg
#2

Nu ser jag inte vilken tabell som blogg id:t ligger i. Men denna lösningen är ett alternativ:

SELECT * FROM (
SELECT f.id, f.klubbid, f.namn, f.ort, k.klubb,
(SELECT MAX(insertdate) from blogg where blogg.id = f.blogg) AS LatestInsertDate
FROM dbo.fidreg AS f
INNER JOIN dbo.sdsfklubb AS k ON f.klubbid = k.id
Where visa_blogg = @visa_blogg And blogg = @blogg) as drv
ORDER BY drv.LatestInsertDate

aasahMedlem sedan mars 20034 471 inlägg
#3

Arne skrev:

Har en grid där jag visar medlemmar som valt att visa sin blogg.
Mitt problem är att jag skulle välja lägga till en kolumn och sortering från tabellen "blogg" där den som senast skrivit ett inlägg visas överst. Men mina tappra försök att lägga till tabellen "blogg" i select satsen nedan gör att ett namn visas antalet ggr som medlemmen har skrivet ett inlägg.

Sorteringen är enkel att få till (när man vet hur man gör) men för att kunna ge ett bra förslag måste jag förstå hela frågan och jag är inte riktigt säker på hur du menar. Vad innehåller den kolumn från blogg som du vill lägga till? Är det datumet personen senast postat (alltså den kolumn du vill sortera efter) eller är det en annan kolumn? Kommer den att ha olika värden för samma postare eller är det lika för alla postarens rader?

ArneMedlem sedan maj 2000267 inlägg
#4

3 tabeller

3 tabeller, fidreg (medlemmarna), sdsfklubb och blogg

Från tabellen fidreg vars kolumnen id är medlemsnumret hämtar jag id, namn, ort och klubbid

Från tabellen sdsfklubb (klubbregister) hämtar jag namnet på klubben från kolumnen klubb
fidreg.klubbid = sdsfklubb.id

Från tabellen blogg vill jag hämta datumet på medlemmarna senaste blogginlägg som jag vill griden ska sortera på.
blogg.fidnr = fidreg.id

Kolumnen inlagddatum i tabellen blogg är datumet som inlägget får när dom skapar ett nytt inlägg.

Så en medlem kan ju ha 100 inlägg i tabellen blogg med olika inlagddatum.
Hoppas det blev förstårligt....

aasahMedlem sedan mars 20034 471 inlägg
#5
SELECT 
   f.id, 
   f.klubbid, 
   f.namn, 
   f.ort, 
   k.klubb,
   X.LastPostDate 
FROM 
  dbo.fidreg AS f 
  INNER JOIN dbo.sdsfklubb AS k ON f.klubbid = k.id 
  INNER JOIN (  -- Sista bloggdatum per användare
    SELECT
      b.fidnr,
      MAX(b.inlagddatum) as LastPostDate
    FROM
      blogg b
    GROUP BY 
      b.fidnr
  ) AS X ON
     f.id = X.fidnr
WHERE 
  visa_blogg = @visa_blogg And blogg = @blogg
ORDER BY
  X.LastPostDate DESC -- Senast överst
133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)