我最近问了一个有关“自我加入”的问题,得到了一个很好的答案。
该查询用于查找事件1之后1天的事件2的ID,开始日期和价格。
该代码工作正常。 但是我不知道如何。
有人可以尽可能详尽地解释一下-查询的不同部分是什么以及它们做什么?
SELECT event2.id, event2.startdate, event2.price FROM mm_eventlist_dates event1 JOIN mm_eventlist_dates event2 ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY) WHERE event1.id=$id
非常感谢您的帮助,无论出于什么原因,我都很难解决这个问题。
我试图理解的方式是在第一块上写出两个列表,分别标记为event1和一个event2。然后在每个列表中列出一些记录(列表将是相同的),现在从以下描述的WHERE开始。
我们正在从两个表中获取数据(确定同一张表使用了两次,但暂时不要理会)
FROM mm_eventlist_dates event1 JOIN mm_eventlist_dates event2
从下至上阅读其余内容可能会有所帮助。
WHERE event1.id=$id
因此,我们希望来自event1的记录具有指定的记录ID。大概那是一个记录。现在我们找出事件结束后的第二天。
date_add(event1.enddate, INTERVAL 1 DAY)
现在告诉我们来自event2的记录,它们需要从该日期开始,
ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)
现在,我们确定了两个记录,我们想要什么字段?
SELECT event2.id, event2.startdate, event2.price
哦,就是我们确定起始日期的字段。