【问题标题】:Checking privacy and get users according to it in single query在单个查询中检查隐私并根据它获取用户
【发布时间】:2015-11-02 20:48:00
【问题描述】:

我写了一个查询,我正在检查用户是否将他的隐私设置为每个人,它将返回该结果,如果用户设置为网络,那么当前用户在我的情况下,它的 5 将检查用户是否必须是他的朋友或朋友朋友,如果它设置为朋友,那么用户应该是他的朋友:

我尝试了这个查询,但问题是它给出了一个错误:

#1241 - 操作数应包含 1 列

有什么方法可以用不同的方式编写这个查询并获得适当的结果。

SELECT `U`.`UserGUID`, `U`.`FirstName`, `U`.`LastName`
    FROM (`Users` U)
    LEFT JOIN `UserPrivacy` UP ON `UP`.`UserID`=`U`.`UserID`
    WHERE `UP`.`PrivacyLabelKey` =  'group_invite'
    AND 
     IF(UP.Value='everyone',true,'')
     OR
     (UP.Value='network',U.UserID IN(SELECT F2.FriendID FROM Friends F JOIN Friends F2 ON F.FriendID = F2
    .UserID WHERE F.UserID = 5 AND F2.Status='1' AND F.Status='1' GROUP BY F2.FriendID),'')
     OR
     (UP.Value='friend',U.UserID IN(SELECT FriendID FROM Friends WHERE UserID=5 AND Status=1),'')

    AND U.UserID!=5
    GROUP BY `U`.`UserID`

【问题讨论】:

  • IF(UP.Value='everyone' OR (UP.Value='network',U.UserID IN(SELECT F2.FriendID FROM Friends F JOIN Friends F2 ON F.FriendID = F2 .UserID WHERE F.UserID = 5 AND F2.Status='1' AND F.Status='1' GROUP BY F2.FriendID)) OR (UP.Value='friend',U.UserID IN(SELECT FriendID FROM Friends WHERE UserID=5 AND Status=1) ) ....更新查询并试一试
  • 请提供您的表结构..with CREATE 语句

标签: php mysql


【解决方案1】:

试试这个:

SELECT `U`.`UserGUID`, `U`.`FirstName`, `U`.`LastName`
    FROM (`Users` U)
    LEFT JOIN `UserPrivacy` UP ON `UP`.`UserID`=`U`.`UserID`
    WHERE `UP`.`PrivacyLabelKey` =  'group_invite'
    AND 
    IF(UP.Value='everyone',true, IF(UP.Value='network', U.UserID IN(SELECT F2.FriendID FROM Friends F JOIN Friends F2 ON F.FriendID = F2
    .UserID WHERE F.UserID = 5 AND F2.Status='1' AND F.Status='1' GROUP BY F2.FriendID), if(UP.Value='everyone',U.UserID IN(SELECT FriendID FROM Friends WHERE UserID=5 AND Status=1),'')))

    AND U.UserID!=5
    GROUP BY `U`.`UserID`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    相关资源
    最近更新 更多