我有一个像这样的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 |
+------+--------+--------+
这是我可以在一个查询中完成的吗?
感谢任何帮助 提前谢谢!
答案 0 :(得分:1)
对于“单个查询”的某些定义,请确定...如果您愿意使用子查询或联合。
最佳性能可能来自两个查询,但如果您愿意,可以将它们加入UNION以方便使用。
答案 1 :(得分:1)
扰流警报;)
(SELECT * FROM tableA ORDER BY score DESC LIMIT 3)
UNION
(SELECT * FROM tableB WHERE UserID = 4 ORDER BY score DESC LIMIT 1);