ID   FirstName   LastName
1      John        Doe
2      Bugs        Bunny
3      John        Johnson

我想从FirstName列中选择DISTINCT结果,但我需要相应的ID和LastName。

结果集只需要显示一个John,但是ID为1,LastName为Doe。


当前回答

您可以使用组by来显示不同的值和相应的字段。

select * from tabel_name group by FirstName

现在你得到了这样的输出:

ID    FirstName     LastName
2     Bugs          Bunny
1     John          Doe

如果你想回答的话

ID    FirstName     LastName
1     John          Doe
2     Bugs          Bunny

然后使用这个查询,

select * from table_name group by FirstName order by ID

其他回答

您可以使用组by来显示不同的值和相应的字段。

select * from tabel_name group by FirstName

现在你得到了这样的输出:

ID    FirstName     LastName
2     Bugs          Bunny
1     John          Doe

如果你想回答的话

ID    FirstName     LastName
1     John          Doe
2     Bugs          Bunny

然后使用这个查询,

select * from table_name group by FirstName order by ID
SELECT firstName, ID, LastName from tableName GROUP BY firstName
SELECT DISTINCT(firstName), ID, LastName from tableName GROUP BY firstName

在我看来这是最好的选择吗

SELECT ID,LastName 
From TABLE_NAME 
GROUP BY FirstName 
HAVING COUNT(*) >=1

请记住,在使用by和order by组时,MySQL是唯一允许在组中按和/或按块排序的数据库,这些列不是select语句的一部分。

例如: 选择column1 从表 按列2分组 按列3排序

这将不会飞在其他数据库,如Postgres, Oracle, MSSQL等。您必须在这些数据库中执行以下操作

选择columnn1、column2、column3 从表 按列2分组 按列3排序

只是一些信息,以防您曾经将当前的代码迁移到另一个数据库或开始在另一个数据库中工作,并尝试重用代码。