次のコードは私が探しているものに対して機能しますが、効率的なニュース フィードを作成するためのより良い方法があるかどうかを確認しようとしています。このニュース フィードは、最新のコメントやいいねなどを選択することになっていますが、ユーザーごとに最新のもののみを表示します (つまり、John が 2 つのアイテムを高く評価し、3 つのアイテムにコメントした場合、最新のコメントやいいねのみを表示します。複数の UNION が関係しています。
SELECT *
FROM (SELECT username, time, comment FROM comments ORDER BY time DESC) AS temp
GROUP by username
UNION
SELECT *
FROM (SELECT username, time, likes FROM likes ORDER BY time DESC) AS temp
GROUP BY username
ORDER BY time DESC
LIMIT 10