0

という名前のテーブルがありますPeople Job (ID, People ID, Post)

サンプルデータ付き。

ID   People ID      Post

1    P1         Office Assistant

2    P2         Assistant Manager

3    P3         General Manager

4    P1         Officer

5    P2         Manager

次のようにレコードを取得したい。

ID    People ID     Post

3    P3          General Manager

4    P1          Officer

5    P2          Manager
4

3 に答える 3

3
SELECT PJ.*
FROM People_Job PJ
INNER JOIN (
    SELECT People_ID, MAX(ID) MAX_ID
    FROM People_Job
    GROUP BY People_ID
) T ON PJ.People_ID = T.People_ID AND PJ.ID = T.MAX_ID
于 2013-08-01T09:53:23.093 に答える
1

要件についてはよくわかりませんが、特定の people_id の最高の id のデータが必要だと思います...これは適合するはずです:

select * 
from People_Job
where id in (
    select max(id)
    from People_Job
    group by people_id
);

GriGrim の投稿を見たところです。大規模なデータを処理している場合は、Grim のバージョンの方がパフォーマンスが優れているはずです...

于 2013-08-01T09:58:18.723 に答える
0
SELECT * FROM `People Job` WHERE `ID People`>2 ORDER BY `ID People`

ただし、テーブルと列の名前にはスペースを含めないでください。

于 2013-08-01T09:54:11.137 に答える