![](/img/trans.png)
[英]MySQL ERROR: 'Unkown column' tablename.colname in 'on clause'
[英]How to get max(colName) value where colName is of Type TimeStamp in mySQL
我有以下表格结构 并在此表中包含以下数据
现在,我想以一种方式进行查询,以便可以获取所有列的值+特定game_id的max(currenttime)的值。
我正在运行以下查询SELECT _id,game_id,inning_id,scoretype,oponentonescore,oponenttwoscore,currenttime,MAX(currenttime)AS最新FROM game_scores
WHERE game_id ='2268'
结果我只得到一行,如下结果 但是我想要所有符合条件的行(即游戏ID 2268)
如何撰写Query来达到这个目的?
提前致谢
您的MAX()
是一个聚合类型函数,对于多行获取一个值。
因此,将其删除并在PHP中使用类似的内容...
$maxTime = 0;
foreach($rows as $row) {
$maxTime = max($maxTime, strtotime($row['currenttime']));
}
...或运行另一个查询,尽管以上内容就足够了...
SELECT MAX(`currenttime`) AS `latest`
FROM `game_scores`
WHERE `game_id` = '2268'
格式化为您方便的OMG Ponies 样式 。
对不起,我还没有真正测试过,但是像这样的东西可能会解决问题:
SELECT
_id,
game_id,
inning_id,
scoretype,
oponentonescore,
oponenttwoscore,
currenttime,
latest
FROM
game_scores
JOIN (
SELECT
MAX(currenttime) AS latest
FROM
game_scores
WHERE
game_id = '2268'
) AS latest_calculation
WHERE game_id = '2268';
尽管此解决方案在数据库上比在解决方案上重,但在从数据库返回查询后将其找出来的应用程序却很繁重(如建议的alex)。
该查询行上的内容可以满足要求。 未测试。
SELECT _id, game_id, inning_id, scoretype, oponentonescore, oponenttwoscore,
currenttime,maxtime from game_scores OUTER join (SELECT _id,MAX(currenttime)
as maxtime from game_scores) as t on t._id = game_scores._id where game_id = '2268';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.