コメントに基づいて投稿を把握できるようにする必要があるニュースフィードに取り組んでいますが、それ自体は十分に単純ですが、最新のコメントが特定のコメントよりも古い「投稿」のみを取得する方法がわかりません時間。
実証するために、ここに私のデータの非常に単純化されたバージョンがあります:
+----+---------+------------+
| id | Module | Time |
+----+---------+------------+
| 1 | Forum | 1343739050 |
| 2 | Gallery | 1343739150 |
| 3 | Gallery | 1343739250 |
| 4 | Forum | 1343739350 |
+----+---------+------------+
最近コメントされた 5 つのモジュールを取得するには、単純に使用します
SELECT module, max(time) FROM `comments` GROUP BY module ORDER BY max(time) DESC LIMIT 0, 5
戻ります
+---------+------------+
| Module | max(Time) |
+---------+------------+
| Forum | 1343739350 |
| Gallery | 1343739250 |
+---------+------------+
まさに私が欲しいもの。最も再送信されたコメントが特定の時間よりも古いモジュールのみを取得したい場合に問題が発生します。たとえば、1343739350 (ID 4 のコメントの時間) よりも古いですが、where 句を挿入するだけで、一致するコメントが 1 つあるため、フォーラムが返されます。
勝手な推測をしてやってみた
SELECT module, max(time) FROM `comments` GROUP BY module WHERE max(time) < 1343739350 ORDER BY max(time) DESC LIMIT 0, 5
しかし、それは私の希望的観測であることが判明しました。
問題は、それを実行できる mysql コマンドをどのように作成すればよいかということです。