나는 프로젝트 테이블과 작업 테이블을 가지고있다. 프로젝트 목록을 검색하고 각 프로젝트에 최신 due_date로 작업을 표시하고 싶습니다.가장 최근의 mysql 항목 가져 오기
아래의 코드는 프로젝트를 표시하는 데 적합하지만 한 가지 작업을 검색하지만 가장 최근의 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
에 선
을 변경하여이 문제를 해결했다. 그들이 그것을 어떻게 해결했는지 보지 않겠습니까? – Strawberry
"최신"이란 "각 프로젝트의 최대 마감일"을 의미합니까? – Barranka
안녕 Barranka 예 최대 due_date 내가 원하는 것입니다. 테이블에있는 날짜 형식으로 개최됩니다 – EnduroDave