mysql表中有a时间列,a得分列,b时间列,b得分列,如何查询a时间,b时间的最新值,返回其列名,及对应得分
时间: 2024-03-24 08:36:39 浏览: 54
你可以使用以下SQL语句进行查询:
```
SELECT
CASE WHEN a.time > b.time THEN 'a' ELSE 'b' END AS latest_time_column,
CASE WHEN a.time > b.time THEN a.score ELSE b.score END AS latest_score,
CASE WHEN a.time > b.time THEN 'a_time' ELSE 'b_time' END AS latest_time
FROM
table_name a
JOIN table_name b ON a.id = b.id
WHERE
a.time = (SELECT MAX(time) FROM table_name WHERE id = a.id)
OR b.time = (SELECT MAX(time) FROM table_name WHERE id = b.id)
```
这个查询会返回一个结果集,其中包含三列:`latest_time_column`、`latest_score`和`latest_time`。
- `latest_time_column`列表示最新时间所在的列名,如果最新时间在`a`列,则该列值为`'a'`,否则为`'b'`。
- `latest_score`列表示最新时间的得分。
- `latest_time`列表示最新时间所在的列的时间列名,如果最新时间在`a`列,则该列值为`'a_time'`,否则为`'b_time'`。
你可以将`table_name`替换为你的表名,`a`和`b`替换为你的时间列名和得分列名。
阅读全文