1

这很可能是一个简单的问题,但我不知道如何解决它。

在这种情况下,我有三个表。事件、广告和访问。广告和访问都有 event_id 字段,访问有一个 ad_id 字段。最后,我们要比较两个事件日期。

根据广告的 ID,我需要获取所有访问,其中他们的事件日期晚于广告的事件日期。

我很想提供一些代码,但在这种情况下,我很迷茫,我不知道如何在这样的连接上进行连接。

谢谢。

4

1 回答 1

1
select v.*
from ads a
join events ae on ae.id = a.event_id
join visits v on v.id = a.visit_id
join events ve on ve.id = v.event_id and ve.event_date > ae.event_date
where a.id = ?

这里的诀窍是在on加入访问事件的子句中添加一个条件,与广告事件进行比较。

还要注意,可以通过分配不同的表别名来多次连接同一个表。

于 2012-10-07T00:49:14.637 回答