대화의 사용자가 (2, 5)와 같이 배열에 제공된 사용자와 정확히 일치하는 MySQL 테이블에서 conversation_id를 선택해야합니다. 대화 ID. DB를 테이블의여러 행에서 데이터를 가져 오기위한 MySQL 쿼리
추출은 다음과 같이
user_ids (2, 5)
conversation_users:
conversation_id user_id
1 2
1 5
2 2
2 6
이 단일 쿼리에서 수행 할 수 있습니까?
편집 - 2014년 6월 26일
사실, 몇 가지 테스트를 수행 한 후이 항상 제대로 작동하지 않습니다. 대화에 속한 사용자가 배열에있는 사용자보다 많으면 해당 사용자가 속한 모든 대화를 계속 반환합니다.
배열의 사용자와 대화중인 사용자의 정확한 일치를 얻고 싶습니다. 아래 예에서
, 대화 (6, 7) 모두가 반환하지만 모든 행 반환하지 않아야SELECT `conversation_id` FROM `conversation_user` WHERE `user_id` IN (70, 426)
GROUP BY `conversation_id` HAVING COUNT(DISTINCT `user_id`) = 2;
conversation_user_id conversation_id user_id
14 6 70
15 6 29
16 6 442
17 6 425
18 6 426
19 7 70
20 7 442
21 7 426
22 7 499
23 7 425
24 7 29
비슷한 대답은 = 2 COUNT (DISTINCT USER_ID)을 갖는'에서 "2"의 가치인가 '배열에있는 사용자의 수? –