如果我按名称选择最大数字和组,我如何获得标识符?

时间:2018-03-15 21:47:13

标签: mysql greatest-n-per-group

很难找到标题的单词,但希望这个问题很容易描述。我有一张桌子:

+------------+----------------+---------------------+
| identifier | version_number | name                |
+------------+----------------+---------------------+
|          1 |              1 | propositional-logic |
|          2 |              2 | propositional-logic |
|          3 |              3 | propositional-logic |
|          4 |              1 | natural-numbers     |
|          5 |              4 | propositional-logic |
|          6 |              2 | natural-numbers     |
|          7 |              3 | natural-numbers     |
|          8 |              4 | natural-numbers     |
|          9 |              5 | propositional-logic |
+------------+----------------+---------------------+

我希望获得最新版本'对于每个名称,返回名称和标识符。我已经得到了一个查询:

select max(version_number),name from `release` group by name;

这很接近,返回正确的版本号和名称......

+---------------------+---------------------+ | max(version_number) | name | +---------------------+---------------------+ | 4 | natural-numbers | | 5 | propositional-logic | +---------------------+---------------------+ ...但我也需要标识符。如果我尝试查询...

select max(version_number),name,identifier from `release` group by name;

......我收到错误。我想我明白我哪里出错了,但找不到它。

非常感谢任何帮助。此外,如果任何比我更有经验的人都能想到更具描述性的标题,请立即改变它!

1 个答案:

答案 0 :(得分:1)

您可以在ma版本上使用联接

$