4

这听起来像是一个奇怪的问题,但我正在尝试使用 distinct 子句来获取数据库中的所有名称,但是我希望名字是唯一的

表结构

id fname lname 头发颜色
1 约翰·多·布朗
2 鲍勃·西格尔 金发女郎
3 凯文史密斯红
4 鲍勃·德·格林

期望的输出

约翰·多·布朗
鲍勃·西格尔 金发女郎
凯文史密斯红

我努力了

SELECT fname, lname, haircolor
FROM MainTable
INNER JOIN (select distinct frame from MainTable) as Names
ON MainTable.fname=Names.fname 

这没有奏效。任何帮助将不胜感激。

4

3 回答 3

6

尝试GROUP BY改用:

SELECT fname, lname, haircolor
FROM yourtable
WHERE id IN
(
    SELECT MIN(id) FROM yourtable GROUP BY fname
)
于 2012-05-24T21:30:34.147 回答
1

尝试使用GROUP BY

SELECT fname, lname, haircolor FROM MainTable GROUP BY fname
于 2012-05-24T21:31:21.240 回答
0

尝试这个:

SELECT fname,SUBSTRING_INDEX( MAX(CONCAT(lname,'~',haircolor)) , '~', 1 ) lname
 ,SUBSTRING_INDEX(SUBSTRING_INDEX( MAX(CONCAT(lname,'~',haircolor)) , '~', 2 ),'~',-1) haircolor from MainTable 
于 2012-05-24T21:49:56.023 回答