如何仅选择每个字段的一行?

17 浏览
0 Comments

如何仅选择每个字段的一行?

我有两个表ServiceStatus。Service表只有一个name和一个id字段。

Service表如下:

| id | name |

|----|-------|

| 1 | Test1 |

| 2 | Test2 |

Status表如下:

| id | status | service_id | timestamp |

|----|--------|------------|---------------------------|

| 1 | OK | 1 | October, 15 2015 09:03:07 |

| 2 | OK | 1 | October, 15 2015 09:08:07 |

| 3 | OK | 2 | October, 15 2015 10:05:23 |

| 4 | OK | 2 | October, 15 2015 10:15:23 |

我想要的结果是:

| id | name | status | timestamp |

|----|-------|--------|---------------------------|

| 1 | Test1 | OK | October, 15 2015 09:08:07 |

| 2 | Test2 | OK | October, 15 2015 10:15:23 |

即获取最新的Status和对应的Service数据。我尝试了以下语句:

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 | Test2 | OK | October, 15 2015 10:15:23 |

请问如何修改语句以获得我想要的结果呢?

0