webForumDet fria alternativet

SQL String för Diskuss

5 svar · 269 visningar · startad av snake_vbg

snake_vbgMedlem sedan aug. 200226 inlägg
#1

Tjena jag skriver en diskuss i ASP
min första query ser ut såhär

SQL = "SELECT s.*, a.* FROM threads s INNER JOIN answers a ON (s.id = a.id)"

Det funkar och den visar allt Men om jag har mer än 1 svar på varje thread
så körs den 2 gånger eller 3 gånger
Jag har kollat på DISTINCT eller SHAPE men det verkar inte funka

Någon som har nån ide hur jag skall utforma min query?

/snake

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det är så en join fungerar. Vad vill du ha för resultat?

Eftersom frågan handlar om SQL och inte om ASP så flyttar jag tråden.

snake_vbgMedlem sedan aug. 200226 inlägg
#3

resultatet jag letar efter är att thread namnet / id't skall inte komma upp 2 gånger utan bara 1 gång

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Hur då menar du? Resultatet av en select är en tabell där alla rader har lika många kolumner. Hur skulle den tabellen se ut då det finns flera svar för en viss thread?

menar du något så här?

thread.ID!Answer
---------------------
4711!svar 1
<empty>!svar 2
<empty>!svar 3

<empty> skulle då vara en tom sträng.

Det går visserligen med lite pyssel att få till en sådan fråga i SQL men det är enklare att hantera det i klienten så att man bara skriver ut informationen från tabellen thread om den är förändrad jämfört med föregående post. Det innebär också att du måste ha med en order by i din select-sats.

SQL = "SELECT s.*, a.* FROM threads s INNER JOIN answers a ON (s.id = a.id) order by s.id"
set rs = connect.execute(sql)
sid = 0
while not rs.eof
if  clng(rs("id")) <> sid then
'write thread specific data
   sid = clng(rs("id"))
end if
'write rest of data
rs.movenext
wend

Hmm, tråden kanske skulle ha varit kvar i ASP i alla fall.

snake_vbgMedlem sedan aug. 200226 inlägg
#5

s

hehe nja du klarar ju hjälpa mig =)

så här är det jag har 2 tabbeler 1 för threads och en för svar

säg att thread post 1 har id1
sen skriver vi ett svar till den som också har id1
sen ett svar till som också får id1

jag relaterar sedan svars posterna till thread ID't så att dem hänger ihop

Men när jag skriver ut det blir det

Thread 1 - Detta funkar
-Svar: Detta funkar
Thread 1 - Detta funkar
-Svar: detta är svar 2

den tar alltså Thread 1 2 gånger jag vill bara att den skall välja thread 1
en gång sedan posta ut svaren under det om du fattar? typ
Thread 1 - Detta funkar
-Svar: detta funkar
-Svar: detta är svar2

förstår du?
Tackar

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Jag slog ihop detta med din tråd s eftersom dom hänger ihop.

Då får du använda den logik jag beskrev i svaret ovan. Dvs, att du gör det i klienten och inte med hjälp av SQL.

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