Hallo Michi,
du verwendest quest LEFT JOIN quest_cat
. Warum? Das wäre nur sinnvoll, wenn es Fragen ohne Kategorien gibt. Ist das so?
Das Problem mit dem Satz Nr. X ist, dass solche Angaben in SQL eigentlich irrelevant sind. Eine laufende Nummer ist Schall und Rauch, wenn die DB im Multiuser-Betrieb läuft. Die Hauptanwendung für "Zeile X" oder "Zeile X-Y" ist eigentlich Paging, und das macht man schlauerweise über Schlüssel, nicht laufende Nummern (weil es für SQL effizienter ist).
Die Frage wäre also: Woher kommt überhaupt die laufende Nummer? Woher weißt Du, dass Du die "zweite Zeile" brauchst? Abhängig davon kann man überlegen, wie man das Problem mit SQL Prinzipien lösen kann.
Also - wenn Du es natürlich unbedingt willst - es gibt in MYSQL die LIMIT Klausel, und in MS SQL die TOP Klausel. Oracle oder Postgre haben sicherlich ähnliches.
MYSQL: LIMIT X, Y (am Ende des Statements) bedeutet, dass er vom Ergebnis X Sätze überspringen soll und dann Y Sätze zurückgeben.
MS SQL: TOP N (direkt hinter dem SELECT Schlüsselwort) bedeutet, dass er vom Ergebnis die ersten N Sätze liefern soll.
Rolf
sumpsi - posui - clusi