我有一个查询,其中有子查询。子查询返回的值,我需要返回在PHP中,也被用于“where”子句。我想弄清楚如何不能执行子查询两次。 我试图将它的值赋给变量。它在“select”中工作正常,但是当我在“where”子句中使用变量时,查询返回0行。MySql变量中“where”子句问题
SELECT t.tour_id, t.tour_name, u.company_name, u.first_name, u.last_name,
@expireDate:= (SELECT DATE_ADD(tour_start_date, INTERVAL (t.tour_duration - 1) DAY)
FROM travelhub_tours_instance
WHERE tour_id = t.tour_id
ORDER BY tour_start_date DESC
LIMIT 1) AS expire,
(@expireDate + INTERVAL 14 DAY) AS expirediff,
CURDATE() AS now,
((@expireDate + INTERVAL 14 DAY) = CURDATE()) AS criteria
FROM travelhub_tours t
JOIN travelhub_users u ON t.operator_id = u.user_id
WHERE (@expireDate + INTERVAL 14 DAY) = CURDATE()
在WHERE
子句中,我把它和“criteria”列中的相同。如果没有WHERE子句,它的变量就像我期望的那样工作。我很困惑 - 没有“where”:
很酷)谢谢 – 2011-03-15 16:35:12