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