여기 내 문제가 있습니다. 나는 'user_has_personalities'라고 불리는 many-to-many 테이블을 가지고있다. 내 응용 프로그램에서는 사용자가 많은 특성을 가질 수 있으며 특성은 많은 사용자에게 속할 수 있습니다.MySQL 다 대다 질의 문제
테이블에는 user_id와 personality_id의 두 개의 정수 열이 있습니다.
내가해야 할 일은 내가 쿼리에 제공하는 적어도 모든 특성 (가변 크기의 personality_ids 집합)이있는 모든 사용자를 얻는 것입니다.
예를 들어, ID가 4, 5, 7 인 개성을 가진 모든 사용자를 얻고 싶지만 다른 인격을 가질 수도 있습니다. 하지만 예를 들어, 4, 5, 7, 9, 10과 같이 원하는 성격 ID의 가변 개수에 대해 작업 할 쿼리가 필요합니다.
아이디어가 있으십니까?
select user_id
from user_has_personalities
where personality_id in (<list-of-personality-ids>)
group by user_id
having count(*) = <numer-of-items-in-IN-list>
당신은 <list-of-personality-ids>
에 대한 성격 ID의 쉼표로 구분 된 목록을 제공해야하고 또한 일 elist의 항목 수를 제공해야합니다
이것은 단지 personality_id 중 하나인지 여부를 알려줍니다. 질문은 명시 적으로 모든 ID를 말합니다. –
@Evan :이 쿼리는 사용자가 모든 ID를 가지고 있는지 여부를 알려줍니다. – Quassnoi
나는 당신이하는 일을보고있다. 좋은. –