ich die folgende SQL-Abfrage habe und ich versuche, Paginierung zu implementieren, so möchte ich zunächst die COUNT des Ergebnisses erhalten:korrekte Syntax für COUNT (DISTINCT ...)
Die normale Abfrage (funktioniert)
SELECT DISTINCT c.*, p1.*, username FROM candidate c
LEFT JOIN note p1 ON (c.candID = p1.candidateID)
LEFT JOIN user ON p1.userID = user.id
LEFT OUTER JOIN note p2 ON
(c.candID = p2.candidateID AND (p1.noteID < p2.noteID))
WHERE p2.candidateID IS NULL ORDER BY c.firstname ASC
ich folgendes versucht haben, aber es wirft einen Fehler und ich bin nicht sicher, was die korrekte Syntax zu verwenden:
der Versuch, die Ergebnisse zu zählen (nicht Arbeit)
SELECT COUNT(DISTINCT c.*, p1.*, username) FROM candidate c
LEFT JOIN note p1 ON (c.candID = p1.candidateID)
LEFT JOIN user ON p1.userID = user.id
LEFT OUTER JOIN note p2 ON
(c.candID = p2.candidateID AND (p1.noteID < p2.noteID))
WHERE p2.candidateID IS NULL ORDER BY c.firstname ASC
Der Fehler:
Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, um die richtige Syntax in der Nähe von ', p1 zu verwenden. , username) FROM Kandidat c LINKS 'at line 1
hinzugefügt den Fehler, ich bin zuerst bekommen die Anzahl zu bestimmen, wie viele Seiten die Ergebnisse zu verbreiten, scheint dies ziemlich normal zu sein siehe: http://StackOverflow.com/Questions/818567/Mysql-Pagination-without -double-querying – dlofrodloh
Die oben gewählte Antwort an Ihrem Link zeigt an, dass dies nicht der richtige Weg ist. Es führt die Abfrage zweimal unnötigerweise aus. Verwenden Sie die Klausel 'LIMIT', um die Paginierung ordnungsgemäß zu unterstützen. –
Diese Antwort ist schön und einfach, aber ich brauche auch die Anzahl der Seiten und eine Zahl, wie viele Ergebnisse es gibt, nicht nur eine nächste Schaltfläche – dlofrodloh