나는 두 개의 테이블이 어디 왼쪽은에서 문제를 가입 .id, activity_images에 항목이 없을 수도 있습니다.MySQL의 절
나는 activity_images에있는 데이터에 관계없이 모든 데이터를 기본적으로 가져오고 싶습니다.
select a.*,a.id as 'activity_id',b.*
from activities a
left join activity_images b on a.id = b.activity_id
where b.image_type='main' LIMIT 0, 9
문제는 출력입니다 :
다음은 내 쿼리입니다. 위 쿼리는 일치하는 행에 대한 데이터 만 제공하고 b.image_type = 'main'입니다. activity_images에 항목이없는 행은 출력하지 않습니다.
나는 모든 행을 원하지만 동시에 image_type에 대한 다른 값이 있기 때문에 b.image_type = 'main'이되도록하고 싶습니다. image_type = 'main'에 대한 값을 얻고 싶습니다 (If 전혀 일치합니다).
상담하십시오. 미리 감사드립니다.
:
이 처리하는 적절한 방법은
ON
절에 기준을 이동하는 것입니다? 이것을 논리적으로 생각하십시오. – Devonactivity_images가없는 모든 행과 type이 main 인 activity_images가있는 행을 (비공식적으로 표현하기 위해) where 절을'where coalesce (b.image_type, 'main') = 'main'으로 변경해야합니다. 그것이 당신의 의도가 아니라면, cf. 데본의 코멘트. – collapsar
thats 전체적인 포인트 .... 내 말은 .. 모든 행이 일치하면 image_type = 'main'과 일치해야합니다. 그렇지 않으면 null로 반환합니다. 그럴 가능성은 없습니까? – user1411837