如何查看用户x和用户x的状态?

时间:2017-04-08 14:42:36

标签: mysql

我正在寻找一个SELECT查询,在那里我可以找到两个用户的状态,状态可以是多个事情,但让我们保持简单并检查两个用户是否是朋友。

使用此查询我可以选择具有x状态的每个用户,现在x表示没有状态。但这样做我得到了返回的用户表,我希望返回为true或false。此外,此查询返回x用户状态为x的所有人。我希望基于以下内容返回true或false:如果用户x和x具有状态,在这种情况下是朋友。我希望我不要在这里模糊。

checkAspectRation : function(file){

    var reader = new FileReader();

    /*Callback */
    reader.onloadend = function() {

        //var image = new Image();
        var image = document.createElement("img");
        image.onload = function() {
            // access image size here 
            console.log("Width: " + this.width);
            console.log("Height: " + this.height);
        };

        image.src = reader.result;

    };

    /*Read the file*/
    reader.readAsDataURL(file);
},

用户表:

SELECT 
    u.*
FROM User u
LEFT JOIN User_Status us
    ON u.id = User_ID1
    AND us.User_ID2 = 4
WHERE us.status IS NULL

User_status表:

ID-----first_name-----last_name-----etc...<br>**
-2--------James----------someting-------...<br>
-4----------Jack-----------someting-------...<br>
-5--------Sabrina---------someting-------...<br>

通缉结果:

User_ID1-----User_ID2-----Status<br>**
-----------4-----------------2-----friends<br>
-----------2-----------------4-----friends<br>
-----------4-----------------5-----something else<br>
-----------5-----------------4-----something else<br>

1 个答案:

答案 0 :(得分:1)

确实,你的问题有点模糊。根据我的理解,你想知道两个用户(已知的ID)是否是朋友?

以下查询可以帮助您。

SELECT
    "A_USER_ID" as user_a,
    "B_USER_ID" as user_b,
    (
      CASE 
      WHEN EXISTS(
        SELECT * 
        FROM User_Status us 
        WHERE us.status = "friends" AND ((
            us.User_ID1 = "A_USER_ID" AND us.User_ID2 = "B_USER_ID" 
        ) OR (
            us.User_ID1 = "B_USER_ID" AND us.User_ID2 = "A_USER_ID"
        ))
      )
      THEN "true" 
      ELSE "false" 
      END
   ) as friends
FROM
    User u
WHERE
    u.id = "A_USER_ID";