4

これは奇妙な質問のように聞こえるかもしれませんが、データベース内のすべての名前を取得するために個別の句を使用しようとしていますが、名を一意にする必要があります

テーブル構造

idfnamelnameヘアカラー
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

GROUPBYを使用してみてください

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 に答える