我有以下查詢......簡單的不同列,不能讓我的頭周圍
SELECT DISTINCT TITLE, ID, IMAGE_1, IMAGE_1_DESCRIPTION
FROM PHOTO_GALLERY
ORDER BY ID ASC
當然,這帶來了所有的條目,但我想它過濾掉任何有相同的TITLE字段,只選擇最低的ID
我見過有幾個問題與此查詢類似,但我似乎無法通過研究他們的問題來解決問題的答案。
在此先感謝!
我有以下查詢......簡單的不同列,不能讓我的頭周圍
SELECT DISTINCT TITLE, ID, IMAGE_1, IMAGE_1_DESCRIPTION
FROM PHOTO_GALLERY
ORDER BY ID ASC
當然,這帶來了所有的條目,但我想它過濾掉任何有相同的TITLE字段,只選擇最低的ID
我見過有幾個問題與此查詢類似,但我似乎無法通過研究他們的問題來解決問題的答案。
在此先感謝!
你需要一個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
select在「from」位執行表的笛卡爾乘積。 「哪裏」敲掉那些不符合條款的人。 「排序」排序其餘的。進入混合區是不同的 - 你得到的第一行與下一行不相同。
等稱號,並使用極限添加where子句
鮮明返回唯一行指定一組列。也許你應該嘗試使用這個作爲子查詢:
select min(id), title from photo_gallery group by title
哇!這是偉大的人!對此,我真的非常感激。這聽起來很簡單,但我還沒有把我的頭靠得像以前那樣複雜。謝謝你們的幫助! – 2013-03-23 00:00:39