[英]Prepared Statement Not Fetching All Results
我有一個准備好的聲明,該聲明正在獲取存儲設施中的租金,並將其放入列表中,以便在到期時跟蹤后端。 我遇到的問題是,當該語句輸出列表時,如果一個以上的人有相同的天數直到到期,那么該列表僅顯示這些租戶之一。 我有以下准備好的聲明:
SELECT rentals.rental_startdate,
rentals.rental_renewdate,
rentals.rental_duedate,
rentals.rental_latedate,
rentals.rental_status,
rentals.rental_balance,
units.unit_id,
units.unit_number,
units.unit_status,
users.user_id,
users.user_fname,
users.user_lname,
@var := DATEDIFF(rentals.rental_renewdate,CURRENT_DATE) AS days
FROM rentals
INNER JOIN units ON units.unit_id = rentals.unit_id
INNER JOIN users ON users.user_id = rentals.user_id
WHERE rentals.rental_status=?
GROUP BY rentals.rental_renewdate HAVING days>=0 AND days<=?
ORDER BY rentals.rental_renewdate ASC
該問題似乎是由於HAVING days>=0 AND days<=?
。 天數等於在變量中定義為5天的通知期限。 當我拿走這筆錢時,我看到我們每個人都會上班,無論他們是在5天內還是10天內到期,而這並不是我們真正想要的,但這解決了只看到一個要在3天內到期的人的問題。確實有2個。看起來是否有任何異常會導致此問題? 我正在使用while($select -> fetch()) {
選擇行。
您需要將名稱數據添加到GROUP BY子句。
GROUP BY users.user_fname, users.user_lname, rentals.rental_renewdate
應該做的把戲
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.