如何使用mysql选择DISTINCT行

21 浏览
0 Comments

如何使用mysql选择DISTINCT行

我有两个表ServiceStatus。服务表只包含一个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

0