Password ------------- 0

问题描述 投票:0回答:1

我有两张桌子 ObjectsEvents.

Objects 是这样的结构。

ID | Password
-------------
0  | aaaa
1  | bbbb

事件的结构是这样的:

Object | Date       | Type
--------------------------
0      | 2020-06-01 | 0
0      | 2020-06-02 | 1

我想实现的是:对于每个ID,得到最后一个事件关联的类型。在上面的例子中,Object 0 将与 1,因为 1 是上一次事件的类型 2020-06-02. 此外,每当一个对象没有任何事件时,将其与 1 到它。

我试着为每个对象的事件排序,这样我就可以使用查询加入我的对象信息。

SELECT ID, IFNULL(e.Type, 1)
FROM objects o
LEFT JOIN (
    SELECT e.Object, e.Date, e.Type
    FROM events e
    WHERE e.Object = o.ID
    ORDER BY e.Date DESC
    LIMIT 1
) AS e ON e.Object = o.ID

但没有成功,因为... o.ID 是未知的,但我实在想不出其他解决办法。因此我的问题是:如何在加入表的条件里面使用外表的属性?

如果有什么不清楚的地方请告诉我,谢谢。

mysql join greatest-n-per-group correlated-subquery
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.