속성 목록을 검색하려고하는데이 작업을 수행하려면 4 개의 테이블을 하나로 묶어야합니다. 표는 property, property_type, state 및 photo입니다.속성의 기본 이미지 만 가져 오기
문제는 속성의 기본 이미지 만 얻는 중입니다. 가장 낮은 순위의 사진이 기본값이어야합니다. 따라서 속성 10에 2 장의 사진이있는 경우 하위 값이있는 사진보다이 결과 집합에 있어야합니다.
내가 지금까지 무엇을 가지고 있는지 살펴보고, 지금까지 내가 한 것을 설명해야합니다. 기본적으로 해당 속성에 할당 된 사진 ID를 포함하여 속성 목록을 표시합니다. 불행히도 추가 결과를 없애기 위해 GROUP BY를 사용하고 있기 때문에 불행히도 5 개의 사진이 할당되어 있으면 5 개의 행을 필요로하지 않습니다. 사진 순위에 따라 정렬하면 결과가 바뀔 것입니다.
SELECT
property.property_id,
property.property_name,
state.state_id,
state.state_name,
photo.photo_id,
photo.rank
FROM property
JOIN photo
ON property.property_id = photo.property_id
JOIN property_type
ON property.property_type_id = property_type.property_type_id
JOIN state
ON property.state_id = state.state_id
GROUP BY property.property_id
ORDER BY
state.state_name ASC,
property.property_name ASC,
photo.rank ASC
누구나 올바른 방향으로 나를 가리킬 수 있습니까? 한 가지 유의할 것은 이미 완료된이 프로젝트에 들어갈 것입니다. 따라서 데이터베이스 구조는이 시점에서 변경할 수 없습니다.
Uhm .. "ON x.property_id"에 구문 오류가 없습니까? Upvoted 때문에 접근 방식이 옳다. – Radu094
@ Radu094 : Thx가 수정되었습니다. 내가 사진 물건에 너무 많은 관심을 지불했다 :) –
감사합니다! 이것은 완벽하게 작동합니다. – Roeland