如何使用mysql选择DISTINCT行
如何使用mysql选择DISTINCT行
我有两个表Service
和Status
。服务表只包含一个name
和一个id
。
| id | name |
|----|-------|
| 1 | 测试1 |
| 2 | 测试2 |
还有一个 Status 表,如下所示:
| id | status | service_id | timestamp |
|----|--------|------------|---------------------------|
| 1 | 正常 | 1 | 2015年10月15日09:03:07 |
| 2 | 正常 | 1 | 2015年10月15日09:08:07 |
| 3 | 正常 | 2 | 2015年10月15日10:05:23 |
| 4 | 正常 | 2 | 2015年10月15日10:15:23 |
我想要的数据如下:
| id | name | status | timestamp |
|----|-------|--------|---------------------------|
| 1 | 测试1 | 正常 | 2015年10月15日09:08:07 |
| 2 | 测试2 | 正常 | 2015年10月15日10:15:23 |
获取最新的状态和服务数据。我尝试了以下语句:
SELECT ser.id, ser.name, a.status, a.timestamp FROM Service ser INNER JOIN (SELECT * FROM Status ORDER BY Status.timestamp DESC LIMIT 1) AS a ON a.service_id = ser.id
但我只得到了:
| id | name | status | timestamp |
|----|-------|--------|---------------------------|
| 2 | 测试2 | 正常 | 2015年10月15日10:15:23 |
如何修改语句以获得我想要的结果?
用于测试的SQL Fiddle。