2014-10-22 3 views
0

테이블 로그 필드 LogId입니다.입니다. 또한 테이블이 이고 사용자 필드가이고 필드가 userlogStatus, userlogIdLog입니다.두 번째 테이블의 데이터를 제외하고 테이블에서 데이터를 선택하는 방법 Mysql?

두 테이블에서의 관계는 다음과 같습니다 Log.LogId = userlog.userlogIdLog

어떻게 행을 선택 테이블 Log에서 제외 행 userlog,에서 userlogStatus = 1가있는 경우? 식 userlogStatus = 1Log의 메시지를 읽었 음을 의미합니다.

답변

1

당신은 not exists를 사용할 수있는 다음

SELECT * from LOG 
inner join userlog on Log.LogId = userlog.userlogIdLog 
where userlogStatus <> 1 
1

을 시도해보십시오

select l.* 
from log l 
where not exists (select 1 from userlog ul where l.LogId = ul.userlogIdLog and userLogStatus = 1); 

이 최적의 성능을 위해, 당신은 userlog(userlogIdLog, userLogStatus)에 인덱스를 원하는 것입니다.

1
SELECT l.* 
FROM Log l 
LEFT JOIN userlog Log.LogId = userlog.userlogIdLog 
WHERE userlogStatus is null or userlogStatus <> 1 
관련 문제