私は2つのテーブルを持っています:
CREATE TABLE `fl_poll` (
`id_poll` int(11) NOT NULL AUTO_INCREMENT,
`id_player` int(11) NOT NULL,
`position` varchar(50) NOT NULL,
`score` int(11) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ip` varchar(100) NOT NULL,
PRIMARY KEY (`id_anketa`)
) ENGINE=MyISAM;
CREATE TABLE `fl_player` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_team` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
`lastname` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
テーブル fl_player からすべてのプレーヤーを選択し、スコアを数えて、スコアが最も高い上位 3 人のプレーヤーで並べ替え、他のプレーヤーを姓で並べ替える方法はありますか? たとえば、6 人のプレーヤーがいます。
テーブル fl_player:
id | lastname
------------------------
1 Smith
2 Johnson
3 Todd
4 Dragon
5 Bond
6 Black
テーブル fl_poll:
+-----------+-------+
| id_player | score |
+-----------+-------+
| 1 | 2 |
| 2 | 4 |
| 3 | 6 |
| 4 | 8 |
| 5 | 10 |
| 6 | 12 |
+-----------+-------+
そして、私は次のような結果を望みます:
+-----------+----------------------------------------+
| id_player | lastname |
+-----------+----------------------------------------+
| 6 | Black <-- top 3 with highest score |
| 5 | Bond |
| 4 | Dragon |
| 2 | Johnson <-- from now order by lastname |
| 1 | Smith |
| 3 | Todd |
+-----------+----------------------------------------+