0
我有这样的一个表:如何从表中获取多个MAX值
id, customer_id, item_id, field, value
下面是一些示例数据:
id, cid, iid, field, value
1, 100, 1000, 'rating', 10
2, 100, 1000, 'rating', 15
3, 100, 1000, 'worth', 20
4, 100, 1000, 'worth', 25
5, 100, 1100, 'rating', 35
6, 100, 1100, 'rating', 30
7, 100, 1100, 'worth', 35
8, 100, 1100, 'worth', 30
9, 200, 2000, 'rating', 20
10, 200, 2000, 'rating', 25
11, 200, 2000, 'worth', 40
12, 200, 2000, 'worth', 45
13, 200, 2100, 'rating', 30
14, 200, 2100, 'rating', 35
15, 200, 2100, 'worth', 50
16, 200, 2100, 'worth', 55
我一直想写返回查询仅适用于特定客户的所有项目的所有字段的最新值。
对于客户100将返回:
id, cid, iid, field, value
2, 100, 1000, 'rating', 15
4, 100, 1000, 'worth', 25
6, 100, 1100, 'rating', 30
8, 100, 1100, 'worth', 30
而对于客户200将返回:
id, cid, iid, field, value
10, 200, 2000, 'rating', 25
12, 200, 2000, 'worth', 45
14, 200, 2100, 'rating', 35
16, 200, 2100, 'worth', 55
可以有不同领域的无限量,有可能是价值无限量为每一个客户的每一个项目的每一个领域。
该值每小时不断变化,我希望查询只返回某个客户所有项目的所有字段的最新值。
cid可以用基本的WHERE cid ='1'来限制,但我不知道如何将查询分组以获得每个字段和每个项目的一个值。我知道我可以通过对每个领域找到MAX(ID)获得最新的,但我不知道如何与一个查询做到这一点。
我能做到这一点与多个查询和一些PHP但有可能使用单个查询做到这一点?