내 쿼리 :MySQL의 필터링 결과는 외부 조인을 왼쪽으로 사용
SELECT content.*, activity_log.content_id FROM content
LEFT JOIN activity_log
ON content.id = activity_log.content_id
AND sess_id = '$sess_id'
WHERE activity_log.content_id IS NULL
AND visibility = $visibility
AND content.reported < ".REPORTED_LIMIT."
AND content.file_ready = 1
LIMIT 1
해당 쿼리의 목적은 (SESSION_ID로 식별) 사용자가 조회되지 않은 내용 테이블에서 1 개 행을 얻을 것입니다,하지만 아직 본 내용을 반환합니다. 뭐가 잘못 되었 니? (content_ids가 있는지 확인한 표를 확인했습니다)
참고 : 하위 쿼리, 생각을 사용하는 것보다 효율적이라고 생각하십니까?
예, MySQL (atleast 5.0 이하)에서는 서브 쿼리를 사용하는 것보다 효율적입니다. 왜 쿼리가 작동하지 않는지 모르겠다. – Wolph
WHERE 절에서 NULL이어야한다고 말했을 때 SELECT에서'activity_log.content_id'를 반환하는 점은 무엇입니까? –
'activity_log.content_id'를 null로 지정할 수 있습니까? – Thomas