0

たくさんのアートワークが入ったCDがたくさんあります。各CDのサム画像をWebページに表示したいので、そのCDに存在する多くのアートワークから1つの画像を選択する必要があります...

クエリはすべてのアートワークを選択し、位置ごとにグループ化して、最初のアートワークを選択します。注文した後、各レコードの最初の画像だけを選択する方法はありません...

クエリは次のとおりです。

SELECT release_artwork.release_id, release_artwork.position, artwork.small_filename, artwork.small_width, artwork.small_height
FROM release_artwork
JOIN artwork ON artwork.artwork_id = release_artwork.artwork_id
ORDER BY release_artwork.position

ここに画像の説明を入力してください

4

3 に答える 3

4

私はMySQLインスタンスを手元に持っていませんが、これは機能するはずです-最小値を保持するインラインテーブルを定義し、それに結合するだけです。

SELECT release_artwork.release_id, release_artwork.position, artwork.small_filename, artwork.small_width, artwork.small_height
FROM
  release_artwork
  inner JOIN artwork ON artwork.artwork_id = release_artwork.artwork_id
  inner join
  (
  SELECT
    ra.release_id as release_id
   ,min(ra.position) as rap
  FROM
    release_artwork ra
  group by
    ra.release_id
  ) mins
  on mins.release_id = release_artwork.release_id
    and mins.rap = release_artwork.position
ORDER BY
  release_artwork.release_id
于 2012-12-28T19:17:46.147 に答える
2

この場合LIMIT 1、 を使用して、取得する結果を最初の結果だけに制限できます。

于 2012-12-28T19:06:30.763 に答える
0
SELECT release_artwork.release_id, release_artwork.position, artwork.small_filename, artwork.small_width, artwork.small_height
FROM release_artwork
JOIN artwork ON artwork.artwork_id = release_artwork.artwork_id
ORDER BY release_artwork.position LIMIT 1

最後に を追加するLIMIT 1と、単一の結果に制限されます。

于 2012-12-28T19:08:12.433 に答える