【发布时间】:2016-02-14 05:05:48
【问题描述】:
我正在尝试执行我认为是简单的 SQL 语句,但是当我尝试使用子查询时收到错误消息,说正在返回多个列,但我需要返回多个列.
我只是想显示两列,我的用户名和他们当前的余额
这里是 SQL:
SELECT playid, username, balance FROM plays order by playid desc limit 25
返回:
Play ID Username Balance
593 ken -3497
592 cass -204
591 cass -184
590 cass -164
589 ken -517
580 ken -837
579 sam 250
545 cass -134
544 cass -114
这正是我想要的。我所有成员的列表,以及他们的余额。现在我需要在这个查询上运行一个 SUBQUERY,只选择 ID 最高的余额(最近的余额),这将返回一个这样的表:
Play ID Username Balance
593 ken -3497
592 cass -204
579 sam 250
最近的余额是我唯一关心的事情。当我尝试执行第二个查询时,我收到一条错误消息,指出我正在尝试返回多个列。 (我当然是)
任何帮助将不胜感激。
【问题讨论】:
-
我认为你需要澄清你想要什么作为你的输出。您绘制的最后一张表格与您对所需内容的书面描述不一致。
-
你的第二个查询是什么
-
第二张表的输出正是我想要的。用户的 Play ID、用户名和余额。最新的余额将具有最高的 playID。每次为每个用户调整余额时,playID 都会增加,因此我不关心旧余额。我不确定我是否需要这个语句的子查询。理想情况下,我想使用某种用户名 DISTINCT 语句,但这不起作用。
-
Blip 表示查询,而不是结果。类似于
SELECT ... FROM ... -
这是我的问题。如何查询第一个表以执行 SELECT DISTINCT username 之类的操作,以删除错误的用户名,并且只使用一个用户名和一个余额,即具有最高 playID 的余额。