繁体   English   中英

检索最新的mysql条目

[英]Retrieve most recent mysql entry

我有一个项目表和一个任务表。 我想检索项目列表,然后为每个项目显示具有最新Due_date的任务。

下面的代码用于显示项目,并且将检索一个任务,但是它似乎不会以最新的Due_date来检索任务,而是以id为主键最低的任务来检索。 如果我允许多个任务显示结果按Due_date排序,但我想将它们限制为一个。

SELECT t.*, p.id as project_id, p.name as project_name, p.archive as project_archive
FROM project p
JOIN user_project up ON p.id = up.project AND up.user = '.$user.'
 LEFT JOIN (SELECT tmp.* FROM
(SELECT *, IF( @prev <> project_id, @rownum := 1, @rownum := @rownum+1 ) AS rank, @prev := project_id
FROM task t
JOIN (SELECT @rownum := NULL, @prev := 0) AS r 
WHERE user_id = '.$user.' 
ORDER BY t.project_id) AS tmp
WHERE tmp.rank <= 1) AS t ON p.id = t.project_id
ORDER BY p.id asc, t.due_date desc

该查询是否可以帮助您

SELECT *
FROM project p
JOIN user_project up ON p.id = up.project AND up.user = '.$user.'
left join task on p.id = task.project_id and 
task.due_date = (select max(due_date) from task where project_id = p.id)

$ SELECT * FROM project p加入JOIN user_project up on p.id = up.project AND up.user ='。$ user。' 在p.id = task.project_id和task.due_date =上左加入任务(从project_id = p.id的任务中选择max(due_date)) $

感谢所有尝试提供帮助的人。 我最终通过更改线解决了这个问题

ORDER BY t.project_id) AS tmp

ORDER BY t.project_id, t.due_date desc) AS tmp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM