Php 显示每辆自行车的最长距离,如果超过100,则显示绿色图标
我问了一个更简单的问题,然后意识到我的问题过于简单了 我问了一个新问题,因为我原来的问题提供了解决方案,但我问错了问题 以下是jist: 我有一个愚蠢的目标,今年每骑一辆自行车就骑一个世纪 我想创建一个状态仪表板,每个自行车都有一个图标,表示已经完成,绿色表示是,红色表示否 此外,如果是,我希望填充骑乘日期和骑乘里程 第二个条件很容易做到,我的SQL查询是:Php 显示每辆自行车的最长距离,如果超过100,则显示绿色图标,php,mysql,sql,join,Php,Mysql,Sql,Join,我问了一个更简单的问题,然后意识到我的问题过于简单了 我问了一个新问题,因为我原来的问题提供了解决方案,但我问错了问题 以下是jist: 我有一个愚蠢的目标,今年每骑一辆自行车就骑一个世纪 我想创建一个状态仪表板,每个自行车都有一个图标,表示已经完成,绿色表示是,红色表示否 此外,如果是,我希望填充骑乘日期和骑乘里程 第二个条件很容易做到,我的SQL查询是: SELECT r.bike_name, r.ride_date, r.ride_miles FROM rides r JOIN bikes
SELECT
r.bike_name,
r.ride_date,
r.ride_miles
FROM rides r
JOIN bikes b
on r.bike_name=b.bike_name
WHERE DATE_FORMAT(r.ride_date, '%Y')='$current_year' and r.ride_user = '$athlete' and b.bike_retired = 'No' AND ride_miles > 100
我尝试了另一个问题的连接,并将where子句添加到连接中。如果我是表中唯一的使用者,并且我不必检查自行车是否报废,那么它们工作得很好。一旦我添加了这些部分,它就变得一团糟,我又一次迷路了
一旦我可以得到正确的数据回来,我可以使用PHP按摩它。我一直在想我需要一个订购人。使用
IF
根据是否满足阈值返回不同的颜色
SELECT r.bike_name, r.ride_date, r.ride_miles,
IF(r.ride_miles > 100, 'green', 'red') AS color
FROM rides AS r
JOIN bikes AS b ON r.bike_name = b.bike_name
WHERE YEAR(r.ride_date) = $current_year
AND r.ride_user = '$athlete'
AND b.bike_retired = 'No'
太酷了,我不知道你能做到。数据可能是可排序的,但我希望更多(同样是我糟糕的解释),以每辆自行车上最长的英里数回来,然后我可以更容易地整理数据。我认为数据都在那里,但这是一个完整的表扫描。你的问题没有明确说明有多行,你需要找到最大的一行。请看,你应该发布你的模式、样本数据和你试图实现的结果,这将使事情更清楚。sqlfiddle也很有用。