これを行うためのいくつかの異なる方法をここで検索しましたが、これを機能させることはできません。基本的に、Web サイトに追加された画像の記録を含むテーブルがあります。各画像はこのテーブルに入れられます。個別の Added フィールドごとに最初の 5 つの画像を取得したいと考えています。
したがって、テーブルは次のようになります。
ID File Folder Added
----------------------------------
13 13.jpg Event3 20130830
12 12.jpg Event3 20130830
11 11.jpg Event3 20130830
10 10.jpg Event3 20130830
9 9.jpg Event3 20130830
8 8.jpg Event2 20130701
7 7.jpg Event2 20130701
6 6.jpg Event2 20130701
5 5.jpg Event2 20130701
4 4.jpg Event1 20130615
3 3.jpg Event1 20130615
2 2.jpg Event1 20130615
1 1.jpg Event1 20130615
そして、リターンを次のようにしたい:
ID File Folder Added
----------------------------------
13 13.jpg Event3 20130830
12 12.jpg Event3 20130830
8 8.jpg Event2 20130701
7 7.jpg Event2 20130701
4 4.jpg Event1 20130615
3 3.jpg Event1 20130615
したがって、基本的には、最後の 5 つの個別の「追加」日付の最後の 5 つの画像 (最も高い ID で最初に並べ替え) を取得します (ここでも追加フィールドで最新のものを並べ替えます)。ありがとうございました!
編集 - - - - - - - -
もう少し明確です...画像ベースのWebサイトにアップロードした画像でいっぱいのテーブルがあります。Web サイトの前面に、画像がアップロードされた最新の 5 つのギャラリーを示すニュースの宣伝文を作成し、それらの各ギャラリーから 5 つの画像を表示したいと考えています。mysql にある各画像には、一度に 1 日だけギャラリーに画像をアップロードするため、ギャラリーに対応するアップロード日 (「追加」) と、画像が追加されるたびに自動的に増加する ID 番号 (「ID」) があります。 . もちろん他にもたくさんの分野がありますが、それらは私がやろうとしていることにとって最も重要なものです。
編集#2 ----------
私がこれをどのように表現しているかについて多くの混乱があります。説明するのは少し難しいですが、基本的に、テーブルから 5 つの異なる追加日付フィールドの最大 ID フィールドの 5 つを取得するにはどうすればよいですか?
これに関係していると思いますが、実行しても機能しません。
select TOP 5 * from (
select *,
row_no = row_number() over (partition by Added order by ID)
from AviationImages) d
where d.row_n <= 5