webForumDet fria alternativet

En liten fråga till angående sql uttryck

4 svar · 357 visningar · startad av mathias_b

mathias_bMedlem sedan jan. 200922 inlägg
#1

Hej igen, allt fungerad bra med hjälpen jag fick sist på min blogg.
Jag har nu gjort om sql uttrycket lite (tyckte det blev mer logiskt). Men nu har jag också stuvat in en tredje tabell med svarsinlägg på alla bloggarna.
Jag har i stort sett löst allt, men ett litet problem kvarstår. Jag vill nu att den förrutom att lista blogg kategorierna också ska kunna lista senaste skrivna kommentar på vilken blogg som helst under respektive kategori. Detta är vad jag gjort nu:

sql="select FLDtitel,FLDrubrik,FLDname from TBLindex,TBLblogg,TBLsvar where TBLindex.FLDindexid = TBLblogg.FLDindexid AND TBLblogg.FLDid = (select max(bg.FLDid) from TBLblogg AS bg where bg.FLDindexid = TBLBlogg.FLDindexid) AND TBLsvar.ID =(select max(svar.ID) from TBLsvar AS svar where svar.FLDsvarsid = TBLblogg.FLDid)order by FLDtitel"

detta fungerar bra så länge det finns ett svar under den listade bloggen, om inget svar finns under någon av bloggarna så kommer det innebära att den helt hoppar över att lista den kategorin med sin senaste blogg. Så hur löser man det? går det?

oskarsMedlem sedan nov. 20051 317 inlägg
#2

Om inte SQL-frågan hittar något kan du använda följande om du kör ASP:


If RecSet.EOF Then
' Om recordsettet är tomt gör då detta:

Else
' Om det inte är tomt, gör detta:

End If

...om jag förstår din fråga rätt :)

mathias_bMedlem sedan jan. 200922 inlägg
#3

Nej det hela måste styras från sql utrrycket, eftersom den när den är gjord som nu redan filtrerat bort resultat som jag inte vill att den ska pågrund av att vissa bloggar inte har några kommentarer.

Peter SMedlem sedan dec. 20025 483 inlägg
#4
select FLDtitel
     , FLDrubrik
     , FLDname
  from (TBLindex
inner
  join TBLblogg
    on TBLindex.FLDindexid = TBLblogg.FLDindexid)
 left
  join TBLsvar
    on TBLsvar.svarsid = TBLblogg.FLDid
 where TBLblogg.FLDid
     = (select max(bg.FLDid)
          from TBLblogg AS bg 
         where bg.FLDindexid = TBLBlogg.FLDindexid)
   AND (TBLsvar.id is null or TBLsvar.id
     = (select max(svar.id)
          from TBLsvar svar
         where svar.FLDsvarsid = TBLblogg.FLDid))
order
    by FLDtitel
mathias_bMedlem sedan jan. 200922 inlägg
#5

Tackar så jättemycket! den fungerar perfekt som jag vill.
Har lite svårt å se logiken i inner join å left join (lite förvirrande) men jag antar att i det här fallet måste man använda det så. Hur som helst så fungerar det jättebra (får försöka sätta mig in mer i sql, så jag förstår exakt hur joinarna funkar hehe).
Tack än en gång!.

139 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
136 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)