我有一个像这样的 MySQL 表:
+------+--------+--------+
| ID | UserID | Score |
+------+--------+--------+
| 1 | 3 | 12 |
| 2 | 3 | 11 |
| 3 | 3 | 12 |
| 4 | 2 | 14 |
| 5 | 4 | 8 |
| 6 | 2 | 13 |
+------+--------+--------+
据此,我想获得整个表格中的前 3 个分数以及特定用户的最高分数
+------+--------+--------+
| ID | UserID | Score |
+------+--------+--------+
| 4 | 2 | 14 |
| 6 | 2 | 13 |
| 3 | 3 | 12 |
| 5 | 4 | 8 |
+------+--------+--------+
这是我可以在单个查询中完成的事情吗?
任何帮助表示赞赏 提前致谢!
最佳答案
剧透警告;)
(SELECT * FROM tableA ORDER BY score DESC LIMIT 3)
UNION
(SELECT * FROM tableB WHERE UserID = 4 ORDER BY score DESC LIMIT 1);
关于MySQL Group By - 前 3 行和第 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45467011/