2016-06-30 2 views
-1
select * from inventory.home_picture_types hpt 
left join inventory.home_pictures hp on hp.home_picture_type_id = hpt.id 
where hp.id IS NULL; 

이 쿼리를 NULL 작동하지 않는 경우는 방랑/농가에서 작동하고, NULL의 home_picture 값 (올바른, 난 그냥 home_picture_types를 얻으려고)와 home_picture_types를 반환합니다.MySQL의 X 또는

그러나 CentOS Maria DB에서이 쿼리를 실행하면 결과가 전혀 반환되지 않습니다. 마치 인 것 같습니다. LEFT JOIN은 내부 구성원입니다.

나는이 쿼리를 700 가지 방법으로 작성했으며 아무 것도 도움이되지 않습니다. 나는 sql_mode를 점검하고 두 데이터베이스 모두에서 ''로 설정되었습니다 .... 왜 모든 것이 한 가지만 작동하고 다른 것은 작동하지 않는 이유는 무엇입니까 ??

+1

NULL은 절대로 그 자체를 포함하여 아무 것도 아닙니다. 귀하의 SQL은 이해가되지 않습니다. – EJP

+0

'select * from inventory.home_picture_types hpt 왼쪽에 inventory.home_pictures hp 가입 hp.home_picture_type_id = hpt.id에 hp.id = '';'시도하십시오. –

+0

일치하는 hpt.id 및 hp.home_picture_type이없는 행을 반환해야합니다. 맞습니까? 일치하지 않는 부분을 찾으려고 노력하고 있는데, 다음과 같이 반환 할 것입니다. http://tinypic.com/r/243pzti/9 – bi4nchi

답변

0

모든 유형 : select DISTINCT home_picture_type_id from inventory.home_picture_types.

사진이없는 유형 : select home_picture_type_id from inventory.home_picture_types AS hpt WHERE NOT EXISTS(SELECT * FROM inventory.home_pictures WHERE home_picture_type_id = hpt.id).