[英]how to get data of maximum date in php
我有三張桌子..
SEEKER
seeker_nic--- username---request_fulfilled
111-----------ali--------YES
222-----------bilal------YES
第二張桌子是
DONOR
donor_nic---username----area
999----------Fahad-------UK
555----------SAJAD------USA
777---------HAMZA-------PK
第三張表是
STATUS
status-id---seeker_nic---donor_nic--requestfulfilled_by----request_fulfilled_date
1 -------------111-------999---------- Fahad-------------2012/04/09
2 -------------111-------555---------- SAJAD-------------2012/05/15
3--------------222------777-----------HAMZA--------------2012/07/20
現在我想要 SEEKER (111) 的最新數據的結果..
seeker_nic---username--- request_fulfilled---requestfulfilled_by----area---request_fulfilled_date
111-----------ali--------YES-----------------SAJAD-----------------USA--------2012/05/15
我正在嘗試這個查詢,這個查詢顯示了 rite seeker_nic 和 requestfulfilled_date,但它顯示了錯誤的 donor-nic、area 和 requestfulfilled_by ...
SELECT seeker.seeker_nic, donor.donor_nic, donor.area,
status.requestfulfilled_b , max( status.`request_fulfilled_date` ) AS request_fulfilled_date
FROM seeker
JOIN STATUS ON seeker.seeker_nic = status.seeker_nic
JOIN DONOR ON status.donor_nic = donor.donor_nic
WHERE seeker.username = '$uname'
GROUP BY status.`seeker_nic`
我得到這樣的答案....
seeker_nic---username--- request_fulfilled---requestfulfilled_by--------area--------request_fulfilled_date
111-----------ali---------------YES-----------------HAMZA--------------PK------------2012/05/15
請幫助我.. :(
試試這個:
SELECT seeker.seeker_nic, donor.donor_nic, donor.area, status.requestfulfilled_by, status.request_fulfilled_date
FROM seeker
JOIN (
SELECT seeker_nic, max(request_fulfilled_date) as last_date
FROM status
GROUP BY seeker_nic
) x ON x.seeker_nic = seeker.seeker_nic
JOIN STATUS
ON x.seeker_nic = status.seeker_nic
AND x.last_date = status.request_fulfilled_date
JOIN DONOR
ON status.donor_nic = donor.donor_nic
WHERE seeker.username = '$uname'
如果您需要 select 某個特定用戶的最新日期,則不需要GROUP BY
子句:
SELECT
status.request_fulfilled_date, # status.requestfulfilled_by,
seeker.seeker_nic, seeker.username, seeker.request_fulfilled,
donor.donor_nic, donor.username, donor.area
FROM status
LEFT JOIN seeker ON status.seeker_nic = seeker.seeker_nic
LEFT JOIN donor ON status.donoc_nic = donor.donor_nic
WHERE seeker.username = 'ali'
ORDER BY status.request_fulfilled_date DESC
LIMIT 1
SELECT x.seeker_nic, y.username, y.request_fulfilled,
x.requestfulfilled_by, z.area, x.request_fulfilled_date
FROM status x, seeker y, donor z
WHERE x.seeker_nic=y.seeker_nic AND y.seeker_nic=111 AND z.donor_nic=x.donor_nic;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.