【发布时间】:2022-11-24 16:46:11
【问题描述】:
我有两个表 Service 和 Status。服务表只包含一个name和一个id
| id | name |
|----|-------|
| 1 | Test1 |
| 2 | Test2 |
还有像这样的状态表
| 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 |
带有服务数据的最新状态。我试过这个声明
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 |
我怎样才能改变声明以获得我想要的?
用于测试SQL Fiddle
【问题讨论】:
-
基于 SQLFiddle 中使用的 DBMS 添加了
mysql标签 -
您想要每项服务的最新状态?
-
@jarlh 是的,这就是我想要的