mysql - mysql中的相交或减号

标签 mysql sql

我有以下问题,

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/

相关文章:

php - 如何从具有经纬度的mysql地址表中获取经纬度的距离

mysql - sql插入到与另一个表和常量值相关的表

python - 如何使用 Python Msqldb 模块?代替 %s 作为查询参数?

php - 重复 key 更新时 - 增加 2

mysql - 使用两个 IF block 触发

MySQL 复制不更新从站

mysql - 针对海量数据优化MySQL Full outer join

java - 仅更新 hibernate 中给出的行数

sql - 计算周数

Mysql插入/更新不同的十进制值