Php 选择一列中具有最小值且另一列中具有特定值的记录
我有一张这样的桌子:Php 选择一列中具有最小值且另一列中具有特定值的记录,php,mysql,sql,Php,Mysql,Sql,我有一张这样的桌子: username date place time paolo 1/1/2001 milan 00:10.20 marco 1/1/2001 milan 00:11.40 paolo 1/1/2011 milan 00:12.20 paolo 1/1/2004 milan 00:10.50 我想返回用户名paolo的时间值最低的行:
username date place time
paolo 1/1/2001 milan 00:10.20
marco 1/1/2001 milan 00:11.40
paolo 1/1/2011 milan 00:12.20
paolo 1/1/2004 milan 00:10.50
我想返回用户名paolo的时间值最低的行:
我正在尝试此查询:
SELECT username,date,place,MIN(time) as record
FROM crono
WHERE username="paolo"
GROUP BY username,date,place
但它并没有给出我想要的结果。使用orderby和limit:
使用GROUP BY时,在SELECT中永远不要有不属于聚合函数参数的列,也不要有不属于GROUP BY的列,除非您真的、真的、真的知道自己在做什么。虽然这不适用于您的查询,但这是解决方案的常见尝试。Y这可以使用派生表来计算最小时间,然后从派生表的结果中选择它
提示:将日期和时间存储为单个实体,并使用正确的数据类型。
SELECT username,date,place,MIN(time) as record
FROM crono
WHERE username="paolo"
GROUP BY username,date,place
SELECT c.*
FROM crono c
WHERE username = 'paolo'
ORDER BY time
LIMIT 1;
SELECT username, date, place, record
FROM
(SELECT username, MIN(time) AS record
FROM crono c
GROUP BY username) recordselect
INNER JOIN crono c on recordselect.username= c.username