我有以下查询...
SELECT DISTINCT TITLE, ID, IMAGE_1, IMAGE_1_DESCRIPTION
FROM PHOTO_GALLERY
ORDER BY ID ASC
当然它会显示所有条目,但我希望它过滤掉任何具有相同TITLE字段的选项,只选择最低ID
我看到有一些问题与此查询类似,但我似乎无法通过研究来解决我的问题。
提前致谢!
答案 0 :(得分:0)
select在“from”位中执行表格的笛卡尔积。 “哪里”敲出那些不符合条款的人。 “按顺序排序”对其余部分进行排序。进入混合是不同的 - 你得到的第一行与下一行不同。
所以在标题上添加一个where子句并使用LIMIT
答案 1 :(得分:0)
Distinct返回指定列集的唯一行。也许你应该尝试使用它作为子查询:
select min(id), title from photo_gallery group by title
答案 2 :(得分: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