-1
중첩 된 JOIN을 사용하고 있으며, 정렬 된 날짜가있는 열 BOARDING_LAST_EDIT
을 예상합니다.중첩 된 MySQL JOIN이 원하는 열을 생성하지 않습니다.
SELECT
OWNER.ID AS OWNER_ID,
OWNER.FIRST_NAME,
OWNER.LAST_NAME,
OWNER.EMAIL
FROM OWNER
LEFT JOIN (
SELECT OWNER_ID, LAST_EDIT AS BOARDING_LAST_EDIT
FROM BOARDING
WHERE BOARDING.LAST_EDIT > '2017-01-01'
ORDER BY BOARDING.LAST_EDIT DESC
) AS BOARDING_NESTED_TABLE_ORDERED
ON OWNER.ID = BOARDING_NESTED_TABLE_ORDERED.OWNER_ID
GROUP BY OWNER_ID
ORDER BY BOARDING_LAST_EDIT DESC
나는이 반환 무엇입니까 :
| OWNER_ID | FIRST_NAME | LAST_NAME | 이메일 |
내가 원하는 : | OWNER_ID | FIRST_NAME | LAST_NAME | 이메일 | BOARDING_LAST_EDIT을 |
나는 중첩 된 "BOARDING_LAST_EDIT AS "는 추가 열 BOARDING_LAST_EDIT
에게의 요점을 반환 할 것이라고 기대하고 있었다 조인 중첩 - 결과가 처음에만 최신 날짜 순으로 수익을 그룹화 한 것입니다 . 최신 날짜 아래의 모든 날짜는 삭제할 수 있습니다.
테이블을 정렬하기 전에 가입하면 그룹화 기능이 느슨합니다.
예! - 내가 원하는 결과를 만들어 낸다. 필자는 필드 목록이 외부 선언의 일부가 될 필요가 있다고 생각했습니다. 단순히 'LAST_EDIT'열을 마지막으로 알려진 날짜 순서대로 정렬 한 다음 그룹화하기 만하면됩니다. 나는이 일을하는 다른 방법을 생각할 수 없었다. 진술이 이것을 성취하는 적절한 방법으로 보입니까? 이 쿼리는 다소 느립니다. –
"BOARDING_LAST_EDIT"필드의 유형은 무엇입니까? OWNER_ID 당 그룹의 값 중 가장 높은 값을 검색하는 데 "MAX()"를 사용할 수 있습니까? –
'타임 스탬프'입니다. –