我有一個查詢,其中有子查詢。子查詢返回的值,我需要返回在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