我最近问了一个有关“自我加入”的问题,得到了一个很好的答案。
该查询用于查找事件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 哦,就是我们确定起始日期的字段。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。