SELECT
u.*,
ur.friend_id,
COUNT(
IF(um.to_user_id = ?,
(IF(um.`date` >= ulr.last_read,um.message_id,NULL))
,NULL)
) as new_messages
,i.t_1 AS user_photo
FROM user_relationships ur
LEFT JOIN `user` u ON u.user_id=ur.friend_id
LEFT JOIN user_messages um ON um.from_user_id=ur.friend_id
LEFT JOIN user_last_read ulr ON ulr.read_who=ur.friend_id
LEFT JOIN ads a ON a.user_id=u.user_id
LEFT JOIN images i ON a.id=i.ad_id
WHERE ur.user_id=?
GROUP BY ur.friend_id
ORDER BY new_messages DESC
我需要這部分i.t_1 AS user_photo
是在DESC順序,因爲可以有多個user_photos,我需要選擇最新的一個。MySQL的:ORDER BY加入表列
我已經用GROUP_CONCAT(i.t_1 ORDER BY i.image_id DESC) AS user_photo
的舊解決方案。 但我只需要一個圖像,而不是全部可用。 :)
感謝;)
你的問題到底在哪裏?這個查詢不起作用嗎?你需要修改這個查詢來做其他事嗎?不要讓我們猜測。 – cdhowie
我需要i.t_1 AS user_photo以DESC順序保持ORDER BY new_messages DESC不變。 – Somebody
你想先點什麼?這聽起來像你要麼'ORDER BY new_messages DESC,i.t_1 DESC'或'ORDER BY i.t_1 DESC,new_messages DESC'。 – cdhowie