簡體   English   中英

准備好的語句未獲取所有結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM