如何获取所有记录而不重复

How to get all records without duplicate

大家好,我正在尝试获取所有记录而不重复。

这里是我的示例数据库记录。

   (`id`, `productName`, `description`)
   -----------------------------------------------
   (1, 'OpenIDM', 'Platform for building enterprise provisioning solutions'),
   (2, 'OpenAM', 'Full-featured access management'),
   (3, 'OpenDJ', 'Robust LDAP server for Java'),
   (4, 'OpenDJ', 'Robust LDAP server for Java')  !!This line should not appear after SQL result

我想用 SQL

得到什么
   (`id`, `productName`, `description`)
   -----------------------------------------------
   (1, 'OpenIDM', 'Platform for building enterprise provisioning solutions'),
   (2, 'OpenAM', 'Full-featured access management'),
   (3, 'OpenDJ', 'Robust LDAP server for Java'),

这是我针对这个主题的 SQL 片段。

select productName 
from ForgeRock
WHERE productName in (select productName from ForgeRock group by productName having count(*)>1)

http://sqlfiddle.com/#!9/6c924/121

如何获取所有元素而不重复?感谢您的帮助。

id的取值有特殊要求吗?

一个简单的 MIN() 函数就可以解决问题

SELECT MIN(`id`),
  `productName`,
  `description`
FROM ForgeRock
GROUP BY `productName`, `description`

一种方法是获取最小id的数据

select min(`id`),`productname`,`description` from forgerock
group by `productname`, `description`

我认为你必须使用 DISTINCT

select distinct productName,description from ForgeRock;

这是 fiddle 的 mi 结果:
http://sqlfiddle.com/#!9/6c924/132