A ampy Medlem sedan feb. 2001 1 498 inlägg Frågan 27 feb. 2003 12:57 #1 Jag har denna sql-fråga:
SQL = " SELECT gi.id, gi.datum, gi.gast_id, gi.text, gi.last, m.username, m.bild, gs.text " & _
" From gastbok_inlagg gi, members m " & _
" left outer join gastbok_svar gs on gs.inlagg_id = gi.id " & _
" WHERE gi.gast_id = m.id AND gi.id = gs.inlagg_id " & _
" AND gi.agare_id = "&idnr&" order by gi.id desc "
Den sql-frågan laddas den inte alls (sidan hänger sig). Vad kan det vara för fel?
Är det inte något fel i presentationen? Om det är något fel i frågan borde du se det och om den returnererar data så borde det visas. Vad händer om du kör den direkt i db:n?
A ampy Medlem sedan feb. 2001 1 498 inlägg Jag vet att det är fel på sql-frågan för att direkt efter att jag hade executat(heter det så?) sql-frågan skrev jag
response.write "a
och det borde returnera ett felmeddelande, men den reagerade inte på det. Sidan bara laddar och laddar...
A ampy Medlem sedan feb. 2001 1 498 inlägg Ska testa det när jag kommer hem. Återkommer med resultat.
Engine^ Medlem sedan dec. 2000 3 887 inlägg SQL = " SELECT gi.id, gi.datum, gi.gast_id, gi.text, gi.last, m.username, m.bild, gs.text " & _
" FROM gastbok_inlagg gi " & _
" LEFT OUTER JOIN gastbok_svar gs ON gs.inlagg_id = gi.id " & _
" INNER JOIN members m ON gi.gast_id = m.id " & _
" WHERE gi.agare_id = " & idnr & _
" ORDER BY gi.id desc"
Kunde inte testa det här, men kanske det blev fina fisken :)
A ampy Medlem sedan feb. 2001 1 498 inlägg Jag har för mig att jag har testat med inner join med utan resultat. Det går segt ändå. Men ska testa den när jag kommer hem.
L LarsG Medlem sedan dec. 2000 12 464 inlägg Du får börja titta på indexeringen.
Använd explain och börja analysera.
A ampy Medlem sedan feb. 2001 1 498 inlägg När jag kör sql-frågan direkt i databasen med hjälp av mysql-front så hänger sig hela datorn i 5 sekunder och sen visas resultatet.
Fält jag har indexerat är:
gastbok_inlagg
id (primary)
agare_id
gast_id
gastbok_svar
id (primary)
agare_id
gast_id
inlagg_id
members
id (primary)
LarsG skrev:
Använd explain och börja analysera.
Hur gör man det?
Någon som kan ge ett exempel?
A ampy Medlem sedan feb. 2001 1 498 inlägg Läste den där sidan men den hjälpte inte mig så mycket.
Ändrade i sql-frågan lite och skrev så här:
SQL = " SELECT gi.id, gi.datum, gi.gast_id, gi.text, gi.last, m.username, m.bild, gs.text " & _
" FROM gastbok_inlagg gi inner join members m on gi.gast_id = m.id" & _
" [B]inner join[/B] gastbok_svar gs ON gs.inlagg_id = gi.id " & _
" WHERE gi.agare_id = " & idnr & _
" ORDER BY gi.id desc"
Då går den hur snabbt som helst, inga problem alltså, men när jag ändrar den så som jag egentligen vill ha:
SQL = " SELECT gi.id, gi.datum, gi.gast_id, gi.text, gi.last, m.username, m.bild, gs.text " & _
" FROM gastbok_inlagg gi inner join members m on gi.gast_id = m.id" & _
" [B]left outer join[/B] gastbok_svar gs ON gs.inlagg_id = gi.id " & _
" WHERE gi.agare_id = " & idnr & _
" ORDER BY gi.id desc"
Denna sql-sats tar alltså flera sekunder att ladda + att datorn hänger sig under den tiden.
A ampy Medlem sedan feb. 2001 1 498 inlägg Inget som vet hur man kan åtgärda det?
A ampy Medlem sedan feb. 2001 1 498 inlägg Är det verklingen ingen som vet?