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

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

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


当前回答

DISTINCT关键字并没有按照您期望的方式工作。当你使用SELECT DISTINCT col1, col2, col3时,你实际上选择了所有唯一的{col1, col2, col3}元组。

其他回答

不确定是否可以用MySQL做到这一点,但你可以在T-SQL中使用CTE

; WITH tmpPeople AS (
 SELECT 
   DISTINCT(FirstName),
   MIN(Id)      
 FROM People
)
SELECT
 tP.Id,
 tP.FirstName,
 P.LastName
FROM tmpPeople tP
JOIN People P ON tP.Id = P.Id

否则,您可能不得不使用临时表。

试试这个查询

 SELECT ID, FirstName, LastName FROM table GROUP BY(FirstName)
SELECT firstName, ID, LastName from tableName GROUP BY firstName
SELECT DISTINCT(firstName), ID, LastName from tableName GROUP BY firstName

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

SELECT DISTINCT (column1), column2
FROM table1
GROUP BY column1