这是我试图通过 MySQL 查询彻底解决的问题的简化视图。这不是我正在处理的实际表。
如果我有下表:
Name Buyer ID
John Fred 4
John Smith 3
Fred Sally 2
John Kelly 1
我想要一个查询返回以下内容:
Name Buyer ID
John Fred 4
Fred Sally 2
这样我们按“名称”分组并显示最新的行/买家/ID。
我尝试通过执行嵌套选择语句来实现这一点,其中我首先执行“ORDER BY ID DESC”,然后在最外面的 SELECT 上执行“GROUP BY NAME”。而且,虽然这是解决问题的迂回方式,但似乎通过排序,正确的选择会返回给我。不幸的是,“GROUP BY”不能“保证”“Buyer”列将包含预期的条目。
有什么有用的建议可以将其作为查询实现吗?目前,我有一个在大型表转储上运行的查询的效率非常低的 PHP“版本”——绝对不是最佳选择。