Ich habe die folgenden MySQL-Tabellen article
und category
und category_article
. Jeder Artikel kann zu mehr als Kategorie gehören und das ist meine SQL
Abfrage.Wie verwendet man beide Indizes für ORDER BY und GROUP BY?
SELECT * FROM article a
LEFT JOIN category_article ca ON a.id=ca.aid
LEFT JOIN category c ON c.id=ca.cid
GROUP BY a.id
ORDER BY a.date DESC
WHERE c.status='1'
LIMIT 0,10
Mit verschiedenen Spalten für GROUP BY
und ORDER BY
verhindert Indizes verwenden. Also gibt es eine andere Technik, die ich für die Beschleunigung dieser Abfrage verwenden kann.
Wenn jeder Artikel zu mindestens einer Kategorie gehört, könnten Sie statt dessen 'INNER JOIN's machen, das sollte schon schneller sein. – Paul
Warum diese GROUP BY? (Ich sehe keine Aggregatfunktionen.) – jarlh
Warum verbinden Sie Kategorien in dieser Abfrage? –