私は記事テーブルとカテゴリテーブルを持っています。カテゴリごとに 7 つの記事を取得したいと考えています。現在、私はこれを持っていますが、大きなテーブルでは非常に遅いため、実際には解決策ではありません:
SELECT id,
title,
categories_id,
body,
DATE_FORMAT(pubdate, "%d/%m/%y %H:%i") as pubdate
FROM articles AS t
WHERE (
SELECT COUNT(*)
FROM articles
WHERE t.categories_id = categories_id
AND id< t.id AND publish = 1
AND expires > '2008-12-14 18:38:02'
AND pubdate <= '2008-12-14 18:38:02'
) < 7
ORDER BY categories_id DESC
Explain を使用すると、結合タイプ ALL & REF を実行していることがわかります。選択タイプは PRIMARY および DEPENDENT SUBQUERY です。
より良い解決策はありますか?