실용적인 문제는 최근에 사용자가 최근에 보지 못했던 최근에 업데이트 된 항목의 목록을 표시하는 것입니다.특정 제약 조건 하에서 다른 테이블에서 ID를 찾을 수없는 행을 선택하십시오.
주어진 사용자에 대한 항목보기 테이블에 포함되지 않은 항목이 포함 된 표를 반환하려고합니다 (이 경우 사용자 번호 1
). 나는 다음과 같이 생각해 냈다 :
SELECT * FROM items i
WHERE i.updated_at > date_sub(curdate(), interval 10 day)
AND i.id NOT IN (
SELECT item_id FROM item_views v
WHERE i.created_at > date_sub(curdate(), interval 10 day)
AND i.user_id = 1
)
이것은 잘 작동하는 것 같다 (심지어 최선의 방법인가?). 그러나 8 일 전에 조회되고 3 일 전에 업데이트 된 항목을 고려할 때 문제가 발생합니다. 이러한 항목은 분명 새로 추가되었지만이 쿼리에서는 표시되지 않습니다. 이 제한 사항을 어떻게 적용해야합니까?