我有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)"