我有两张桌子 Objects
和 Events
.
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
是未知的,但我实在想不出其他解决办法。因此我的问题是:如何在加入表的条件里面使用外表的属性?
如果有什么不清楚的地方请告诉我,谢谢。