참여 복잡 나는 다음과 MySQL의 쿼리가 :은 MySQL이
SELECT Project.*, `trk_deleted`, `trk_status`, `trk_state`
FROM `project` AS `Project` LEFT JOIN `trackline` ON `prj_id` = `trk_project`
WHERE `prj_deleted` = '0' GROUP BY `prj_id` ORDER BY `prj_name`;
이 설명하기 조금 어려운,하지만 기본적으로 내가 프로젝트 여러 Tracklines이 내 데이터베이스의 구조를 가지고있다. 이 엔티티는 모두 필드가 prj_deleted
및 trk_deleted
이며 삭제 된 경우 (보기에서 숨김) 1 값을 가질 수 있고 0 값은 삭제되지 않은 경우 (여전히보기에 있음) 일 수 있습니다.
내 프로젝트보기 페이지에는 해당 프로젝트의 트랙 라인을 기반으로 각 프로젝트의 아이콘이 표시됩니다. 이러한 아이콘은 trk_status
의 값을 기준으로 표시됩니다 trk_state
만 여러 tracklines (prj_id
BY 따라서 그룹)이있는 경우에도, 프로젝트 1 시간을 표시해야 내 프로젝트보기 페이지
내 문제 : BY GROUP에 MySQL의 문서에서
는 :"또한, 각 그룹의 값의 선택은 추가 기능에 의해 영향을받을 수 없다 ORDER BY 절. 결과 세트 정렬은 값을 선택한 후에 ORDER BY가 서버가 선택하는 값에 영향을주지 않습니다. "
내 프로젝트보기 페이지는 삭제되지 않은 트랙 라인의 아이콘을 표시하는 것이 가장 이상적입니다. 왜 내가 GROUP BY 전에 trk_deleted
에 의해 주문하는줬으면한다는 그룹이 삭제되지 않은 trackline으로 이루어졌다 때문에 발생했습니다.
는 희망이 사람이 내가 여기에서 얻으려고 무엇을 이해할 수있다.
을 명확히하십시오 및'trk_state'는 데이터 무결성 문제이며 데이터에 이상이있을 수 있습니다. 프로젝트 당 하나의 '트랙 라인'만 있습니까 (그리고 나머지는 저장 목적으로 유지됩니다)? 프로젝트에 두 개의 트랙 라인이 있고 두 개의 trk_status가 유효하다는 것은 무엇을 의미합니까? –