0

次のクエリがあります...

SELECT DISTINCT TITLE, ID, IMAGE_1, IMAGE_1_DESCRIPTION
FROM PHOTO_GALLERY
ORDER BY ID ASC

もちろん、すべてのエントリが表示されますが、同じ TITLE フィールドを持つエントリを除外して、最小の ID だけを選択する必要があります。

このクエリに似た質問がいくつかあるのを見てきましたが、それらを調べても問題の答えが見つからないようです。

前もって感謝します!

4

3 に答える 3

0

Distinct は、指定された一連の列に対して一意の行を返します。おそらく、これをサブクエリとして使用する必要があります。

select min(id), title from photo_gallery group by title
于 2013-03-22T23:28:05.110 に答える
0

group byではなくが必要ですdistinct。最も低い ID を取得するには:

SELECT TITLE, min(ID) as minid
FROM PHOTO_GALLERY
group by title
ORDER BY minID ASC

残りの情報を取得するには、テーブルを再度結合する必要があります。明示的に結合したバージョンを次に示します。

SELECT pg.TITLE, pg.ID, pg.IMAGE_1, pg.IMAGE_1_DESCRIPTION
FROM PHOTO_GALLERY pg join
     (SELECT TITLE, min(ID) as minid
      FROM PHOTO_GALLERY
      group by title
     ) pgt
     on pg.title = pgt.title and pg.id = pgt.minid
ORDER BY ID ASC
于 2013-03-22T23:33:03.700 に答える
0

選択は、「from」ビットでテーブルのデカルト積を行います。「どこ」は、節を満たさないものをノックアウトします。「order by」は残りをソートします。混合物は異なります。次の行と同一ではない最初の行が得られます。

そのため、タイトルに where 句を追加し、LIMIT を使用します

于 2013-03-22T23:27:11.527 に答える