我有以下问题,
SELECT DISTINCT (U.uid)
FROM users U
,friends F
WHERE U.STATUS = '1'
AND U.uid = F.friend_two
AND F.friend_one = '1'
AND F.ROLE = 'fri'
上面的查询返回 32 行。
SELECT DISTINCT (U.uid)
FROM users U
,friends F
WHERE U.STATUS = '1'
AND U.uid = F.friend_one
AND F.friend_two = '1'
AND F.ROLE = 'fri'
上面的查询返回 15 行。
我需要合并并取相交的结果。相交的行是14行(意味着两个表中相同的U.uid是14行)
最佳答案
试试这个:
SELECT *
FROM (
SELECT DISTINCT (U.uid) UID
FROM users U
,friends F
WHERE U.STATUS = '1'
AND U.uid = F.friend_two
AND F.friend_one = '1'
AND F.ROLE = 'fri'
) A
INNER JOIN (
SELECT DISTINCT (U.uid) UID
FROM users U
,friends F
WHERE U.STATUS = '1'
AND U.uid = F.friend_one
AND F.friend_two = '1'
AND F.ROLE = 'fri'
) B ON A.UID = B.UID
这基本上是您指定的两个查询的两个结果集的用户 ID 的交集。
关于mysql - mysql中的相交或减号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19615861/