在MySQL查询条件中使用所选字段值


Using selected field value in condition of MySQL query

我有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 as days)

你知道我该怎么做吗?

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

您可以使用一个变量来代替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)

假设$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)"