我有两张桌子,其中一张是给一个人的朋友,另一张是渠道成员。
我想检查一下我的朋友是否是其中一个频道成员。如果是这样,不要出示他的名字,否则告诉他。
$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 :(得分: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
来过滤那些真正拥有频道成员的数据集 - 离开只有不在频道的朋友。
答案 1 :(得分:0)
尝试此查询:
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'
成员的朋友