본문 바로가기
MySql

MySQL 하나의 값을 기준으로 항목을 제외하는 SQL 쿼리

by 베이스 공부 2020. 10. 27.
반응형

다음과 같이 다른 테이블에 포함 된 항목을 기준으로 한 테이블에서 항목 목록을 가져옵니다.

select fruit.id, fruit.name from fruit, fruit_rating where fruit_rating.fruit_id=fruit.id group by fruit.name;

그것은 잘 작동합니다-기본적으로 누군가가 평가 한 모든 과일 목록을 생성합니다. 하지만 지금은 특정 사용자가 평가 한 모든 과일을 제외하고 싶으므로 다음과 같이 시도했습니다.

select fruit.id, fruit.name from fruit, fruit_rating where fruit_rating.fruit_id=fruit.id and fruit_rating.user_id != 10 group by fruit.name;

괜찮지 만 옳지 않습니다. 10 명이 아닌 다른 사람이 평가 한 모든 과일을 표시하지만 사용자 1과 10이 모두 동일한 과일을 평가 한 경우 여전히 해당 과일을 표시합니다. 누가 평가했는지에 관계없이 사용자 10이 평가하지 않은 과일 만 표시하는 쿼리를 생성하는 방법을 알려주는 사람이 있습니까?

 

해결 방법

 

... WHERE fruit_rating.fruit_id=fruit.id 
      and fruit.id not in 
          (select fruit_rating.fruit_id 
             from fruit_rating 
            where fruit_rating.user_id = 10)

 

참조 페이지 https://stackoverflow.com/questions/426128

 

 

반응형

댓글