0

モジュールごとに並べ替えながら、複雑な結合から最新の記事と最新の記事を取得したいこのクエリがあります。

スタックオーバーフローの達人への私の質問は次のとおりです。

日付順のモジュール ID で最新 (1 つだけ) の記事を表示することはできますか?

SELECT *
FROM articles Article
LEFT JOIN sources Source ON Article.source_id = Source.id
RIGHT JOIN app_sources asrc ON asrc.source_id = Source.id
/*GROUP BY asrc.module*/ -> if I enable this i get only one but no order by date
ORDER BY asrc.module ASC, Article.published_at DESC

これは私の最初の質問です。正しくフォーマットしたことを願っています。本当にありがとう

現在はこのようになっています (2k 件の結果)

published_at    title   module
2012-08-22 12:16:41 |   Archos Gen10: Tablet Productivity | 1
2012-08-22 12:13:22 | Vail Resorts Ski App Gets Racing With Lindsey Vonn |  1
2012-08-22 11:58:06 | The Internet a Decade Later [INFOGRAPHIC] |   1

私はそれがこのようにしたいです

published_at    title   module
2012-08-15 14:37:40 | The Air Force’s New Ultra-Fast Jet Has an Epic Fai... | 1
2012-01-13 16:17:51 | Canada’s Helium Digital shows us the thinnest iPad... | 2
2012-01-13 14:40:14 | ESPN Feels Lonely: A Chat Regarding ESPN’s Role In... | 3
4

1 に答える 1

2

テーブル構造を見なければ、これの多くは当て推量になります。MAX()しかし、published_atフィールド に a を組み込む必要があるようです。

このようなもの:

SELECT *
FROM
(
    SELECT max(published_at) maxDate, source_id
    FROM articles
    GROUP BY source_id
) Article
LEFT JOIN sources Source 
    ON Article.source_id = Source.id
LEFT JOIN app_sources asrc 
    ON Source.id = asrc.source_id
ORDER BY asrc.module ASC, Article.maxDate DESC

より明確な回答が必要な場合は、詳細を提供する必要があります。

于 2012-08-22T20:32:27.320 に答える