2016-08-04 1 views
-2

두 테이블이 있습니다. 그 중 하나는 사람의 친구 용이고 다른 하나는 채널 멤버 용입니다.mysql에서 2 개의 테이블을 비교하고 그 결과를 확인하려면 어떻게해야합니까?

내 친구 중 하나가 채널 회원인지 확인하고 싶습니다. 그렇다면 그의 이름을 보여주지 않으면 그를 보여주십시오.

$get_friend = "select * from friends where user_1_id='$user_id' AND friends_status=1"; 
$run_friend = mysqli_query($conn,$get_friend); 

$select_members = "SELECT user_id from channel_members where channel_id='$channel_id'"; 
$run_members = mysqli_query($conn,$select_members); 
+0

채널의 회원이 아닌 친구 테이블의 모든 친구를 선택합니다 – Philipp

+0

친구 테이블에 있음 3 열 user_1_id, user_2_id, friends_status가 있습니다. –

+0

실제로 채널에 친구를 추가하고 싶습니다. 사용자가 이미 채널에 추가 한 항목을 비교하고 싶다면 다시 추가해주세요. –

답변

0

이 쿼리를 시도? 친구의 사용자 ID가 호출되는 친구 테이블의 열 이름은 무엇입니까?
+0

매우 대단히 감사합니다. 나를 위해 일했습니다. –

0
SELECT 
    friends.* 
FROM 
    friends 
LEFT JOIN channel_members 
    ON channel_members.channel_id = '$channel_id' 
     AND channel_members.user_id = friends.user_2_id 
WHERE 
    user_1_id = '$user_id' 
     AND friends_status = 1 
     AND channel_members.channel_id IS NULL 

이 쿼리를 사용할 수 있습니다.

LEFT JOIN을 제외하고 추가했습니다.

결과에 친구 인 채널의 멤버에 참여하려고 시도하지만 where 절에 channel_members.channel_id IS NULL을 지정하면 실제로 채널에 회원이있는 데이터 세트를 필터링하여 채널에없는 친구.

select * from friends where user_1_id='$user_id' AND friends_status=1 AND user_2_id NOT IN(SELECT user_id from channel_members where channel_id='$channel_id') 

이것은 당신이 당신의 테이블 조금 설명 할 수 '$ CHANNEL_ID'

+0

내 친구에게 감사드립니다. 테스트 해 보겠습니다. 그런 다음 결과에 대답 –

관련 문제