使用MySQL。以下SQL语句完美运行:
SELECT a.ID, a.DISPNAME, a.UNIT_TYPE, a.MODELNUM, a.DESCRIP, a.DATE_ADDED, b.TYP, c.FIRSTNAME, c.LASTNAME FROM jobs_engineering a INNER JOIN unit_types b ON a.UNIT_TYPE=b.ID INNER JOIN users c ON a.AEID=c.USERID ORDER BY a.DATE_ADDED DESC
但是现在我只想要列DISPNAME
的唯一记录,因为该列有多个重复值。我添加了DISTINCT
方法
SELECT a.ID, DISTINCT(a.DISPNAME), a.UNIT_TYPE, a.MODELNUM, a.DESCRIP, a.DATE_ADDED, b.TYP, c.FIRSTNAME, c.LASTNAME FROM jobs_engineering a INNER JOIN unit_types b ON a.UNIT_TYPE=b.ID INNER JOIN users c ON a.AEID=c.USERID ORDER BY a.DATE_ADDED DESC
但这不起作用。 MySQL告诉我我的错误接近“DISTINCT”
我试过了:
a.DISTINCT(DISPNAME)
DISTINCT(DISPNAME)
这些都不起作用
我的错误在哪里?有人可以帮忙吗?
答案 0 :(得分:10)
DISTINCT
不是函数,而是查询装饰器。这意味着,如果您希望查询压制所有重复项,则使用SELECT DISTINCT
而不是SELECT
。
现在重要的部分是,一行是另一行的副本,if(和仅 if)所有列都具有相同的值。
您想要达到的目标通常是
GROUP BY
并使用拟合聚合函数LIMIT 1