我有2个表 - 项目和状态更新。项目表具有ID,优先级和状态(等等)的字段,我的状态更新表具有ProjectID和日期等字段。SQL左连接,但不希望所有记录在左表
我想建立一个查询,将拉取所有未完成或取消的高优先级项目,并告诉我哪些在过去14天内没有与它们关联的状态更新。
我有以下信息,但它从左表中给我所有项目,而不是过滤状态不是完成或取消的高优先级项目。
任何帮助将非常满意。
Select proj.id, proj.Priority, proj.status, proj.ProjectName, status_tmp.statusdate, status_tmp.statusdetail
FROM proj
LEFT JOIN (SELECT s1.*
FROM projectstatus AS s1
LEFT JOIN projectstatus AS s2
ON s1.statusproj = s2.statusproj AND s1.statusdate < s2.statusdate
WHERE s2.statusproj IS NULL) as status_tmp
ON (proj.id=status_tmp.statusproj)
where proj.Priority='High' AND proj.status!='Cancelled' and
proj.status!='Completed' AND
status_tmp.statusdate < DATE_SUB(CURDATE(),INTERVAL 14 DAY) OR
status_tmp.statusdate IS null
非常感谢...非常接近,但迄今为止。 – Phill