2

コメントに基づいて投稿を把握できるようにする必要があるニュースフィードに取り組んでいますが、それ自体は十分に単純ですが、最新のコメントが特定のコメントよりも古い「投稿」のみを取得する方法がわかりません時間。

実証するために、ここに私のデータの非常に単純化されたバージョンがあります:

+----+---------+------------+
| 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 コマンドをどのように作成すればよいかということです。

4

1 に答える 1