1

我有 2 个表,我使用以下查询从中获取记录。

SELECT es.name,es.location,e.num_days as days
FROM event_schedule es,events e
WHERE es.owner_id=1 AND es.event_id=e.id AND (es.date_of_service BETWEEN CURDATE() AND CURDATE() + INTERVAL 4 DAY)"

在给定的查询中,我获取了接下来 4 天内的所有计划事件。查询工作正常。我的问题是“INTERVAL 4 DAY”这个值应该来自表“事件”本身。这意味着来自同一查询的字段值(e.num_days 作为天数)。

知道我该怎么做吗?

4

2 回答 2

1

首先,学习正确的连接语法。

您可以使用变量代替4. 所以试试这个:

SELECT es.name,es.location,e.num_days as days
FROM event_schedule es join
     events e
     on es.owner_id=1 AND es.event_id=e.id AND
        (es.date_of_service BETWEEN CURDATE() AND CURDATE() + INTERVAL e.num_days DAY)
于 2013-04-16T13:40:36.773 回答
0

假设 $val 包含你想要的值

SELECT es.name,es.location,e.num_days as days FROM event_schedule es,events e WHERE es.owner_id=1 AND es.event_id=e.id AND (es.date_of_service BETWEEN CURDATE() AND CURDATE() + INTERVAL $val DAY)"
于 2013-04-16T13:38:08.580 回答