Mysql 简单的独立列,我无法理解它
我有以下疑问Mysql 简单的独立列,我无法理解它,mysql,distinct,Mysql,Distinct,我有以下疑问 SELECT DISTINCT TITLE, ID, IMAGE_1, IMAGE_1_DESCRIPTION FROM PHOTO_GALLERY ORDER BY ID ASC 当然,它会显示所有条目,但我希望它过滤掉所有具有相同标题字段的条目,只选择最低的ID 我看到有几个问题与这个问题类似,但我似乎无法通过研究这些问题找到问题的答案 提前谢谢 select对from位中的表执行笛卡尔乘积。Where将那些不符合该条款的人剔除。其余的按顺序排列。在混合中是不同的-您得到的第
SELECT DISTINCT TITLE, ID, IMAGE_1, IMAGE_1_DESCRIPTION
FROM PHOTO_GALLERY
ORDER BY ID ASC
当然,它会显示所有条目,但我希望它过滤掉所有具有相同标题字段的条目,只选择最低的ID
我看到有几个问题与这个问题类似,但我似乎无法通过研究这些问题找到问题的答案
提前谢谢 select对from位中的表执行笛卡尔乘积。Where将那些不符合该条款的人剔除。其余的按顺序排列。在混合中是不同的-您得到的第一行与下一行不同
因此,在标题上添加where子句,并使用LIMITDistinct为指定的列集返回唯一的行。也许您应该尝试将其用作子查询:
select min(id), title from photo_gallery group by title
你需要一个分组,而不是一个单独的分组。要获取最低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
哇!那是个伟大的人!我真的很感激。这听起来是一件很简单的事情,但我没有;I don’我的脑子里没有以前那么复杂了。非常感谢你的帮助!