2017-08-26 67 views
0

我想從client_id和financial_year相同的表中獲取最新條目(added_on),但我沒有客戶端ID或甚至財政年度來比較我需要比較他們在桌上它自我。從mysql表中獲取最新添加的條目

enter image description here

我用下面的查詢:

SELECT * 
    FROM file_mgmt fm 
    , client c 
    , cupboard cb 
    where fm.client_id = c.client_id 
    AND fm.cupboard_id = cb.cupboard_id 
    AND fm.status = 'Active' 
GROUP 
    BY fm.client_id 
    , fm.financial_year 

和我得到這個輸出,這是對每個CLIENT_ID和financial_year,但它不是最新的入門獨特

enter image description here

請幫助獲取最新的條目。

+0

你可以使用LIMIT關鍵字 –

+0

感謝您的答覆球員,但通過增加限1整個查詢的輸出一個是越來越有限的,而且我沒有得到期望的輸出.... – swap

回答

1

希望這將有助於

SELECT * FROM file_mgmt fm, client c, cupboard cb where fm.`client_id` = c.`client_id` AND fm.`cupboard_id` = cb.`cupboard_id` AND fm.status = 'Active' 
    GROUP BY fm.`client_id`, fm.`financial_year` 
    ORDER BY id DESC 
    LIMIT 1 
+0

相同的輸出因爲我有,沒有最新的條目 – swap

+1

誰upvotes這東西 – Strawberry

+0

@pattatharasunataraj抱歉,你的意思是? – Strawberry

0

當您使用GROUP BY,你必須使用內查詢第一,那麼你可以使用它

SELECT fm.*,c.*,cb.* FROM file_mgmt fm, client c, cupboard cb 
JOIN (SELECT file_mgmt_id,client_id, financial_year,max(added_on) 
FROM file_mgmt GROUP BY client_id,financial_year) as fm1 
ON fm.file_mgmt_id = fm1.file_mgmt_id 
where fm.`client_id` = c.`client_id` AND 
fm.`cupboard_id` = cb.`cupboard_id` AND fm.status = 'Active' 

編輯

試試這個簡單改爲查詢

SELECT fm.*,max(added_on) FROM file_mgmt fm, 
    client c , cupboard cb 
    where fm.client_id = c.client_id 
    AND fm.cupboard_id = cb.cupboard_id 
    AND fm.status = 'Active' 
    group by client_id,financial_year ; 
+0

'條款中的'未知列'fm.client_id' – swap

+0

顯示你的查詢。我的建議不會提供這個錯誤,因爲它已經有表fm其中有client_id –

0

嘗試增加

ORDER BY added_on DESC 
LIMIT 1 

在查詢結束。

0
SELECT * 
    FROM file_mgmt fm 
    , client c 
    , cupboard cb 
    where fm.client_id = c.client_id 
    AND fm.cupboard_id = cb.cupboard_id 
    AND fm.status = 'Active' 
GROUP 
    BY fm.client_id 
    , fm.financial_year 
ORDER BY added_on DESC 
LIMIT 1