您好,我有两个查询
一个是
SELECT userid_one AS id FROM `friends` WHERE `userid_two` = '$UserId' AND `requeststatus` ='accepted'
UNION
SELECT userid_two AS id FROM `friends` WHERE `userid_one` = '$UserId' AND `requeststatus` ='accepted'
它给了我用户ID 41,38,61,62,64
第二个是
SELECT DISTINCT `userid` FROM `groupmembers` WHERE `groupid` =24
它给了我61,49,62
我想要结果用户ID不在两个结果中即:49,41,38,64,38
我怎样才能做到这一点
就拿UNION ALL
第一个结果(带有加入),二结果之间。这样重复的值将持续存在。现在使用GROUP BY
查找非重复ids
。
SELECT id from
( SELECT userid_one AS id FROM `friends`
WHERE `userid_two` = '$UserId' AND `requeststatus` ='accepted'
UNION
SELECT userid_two AS id FROM `friends`
WHERE `userid_one` = '$UserId' AND `requeststatus` ='accepted'
UNION ALL
SELECT DISTINCT `userid` AS id FROM `groupmembers` WHERE `groupid` =24
) A
GROUP BY id having COUNT(1)=1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句