我有复杂的 SQL QUERY 我需要一些帮助来解决以下情况:
我正在寻找具有以下条件的 SQL 查询:
SELECT * FROM Table_1,Table_2 where user_id = ’16’ // 16 = ($_SESSION[ 'SESS_USER_ID' ])
- 条件 1 -> 不要显示我自己(当前登录用户 ID。=> 16(是我)($_SESSION[ 'SESS_USER_ID' ]))
- CONDITION 2 -> 不要在列表中显示 user_id 25,26,27,28 因为它们已经在 table_2 中,因为一些条件 user_id ='16' 和 CONDITION 0,1 来自friend_status
- 条件 3 -> 按 signupdate 订购
我期望的结果示例如下: 我需要什么-> 我需要显示登录 'user_id' 的所有成员的结果,这些成员不在 Table_2 'friend_status' 条件 (0,1,2) 中
在下表结果中,您可以看到登录名“user_id”(本例中为 16)无法看到 Table_2 CONDITION (0,2) 中的其他“user_id”,包括他自己作为登录名“user_id”( 16)
//Perfect SQL results for me.
+—————————+—————————————+
+ user_id +signupdate +
+—————————+—————————————+
+ 23 + 2020-11-30 +
+—————————+—————————————+
+ 24 + 2020-11-30 +
+—————————+—————————————+
+ 28 + 2020-11-30 +
+—————————+—————————————+
+ 21 + 2020-11-30 +
+—————————+—————————————+
我需要什么 -> 我需要一个 SQL 查询来显示结果,显示登录 'user_id'(16) 的所有成员不在 Table_2 'friend_status' 条件 (0,2) 中
问题-> 我在下面得到的结果与表 2 中请求的“friend_status”条件 (0,2) 不匹配。
为什么?因为登录 'user_id' 不应该看到完整会员页面结果中的所有 'friend_status' CONDITION (0,2) 无条件 (0,2)
为什么?因为这些 SQl 结果 CONDITION (0,2) 显示在每个 CONDITION (0,2) 的 3 个不同结果页面中的其他地方 -> 不是今天的主题。
//Wrong SQL results for me.
+—————————+—————————————+
+ user_id +signupdate
+—————————+—————————————+
+ 16 + 2020-11-30 + <— SHOULD DO NOT SHOW,CONDITION-> ITS ME “login” $user_id = ’16’
+—————————+—————————————+
+ 23 + 2020-11-30 +
+—————————+—————————————+
+ 24 + 2020-11-30 +
+—————————+—————————————+
+ 25 + 2020-11-30 +<— SHOULD NOT SHOW -> TABLE_2 CONDITION user_id = ( $_SESSION[ 'SESS_USER_ID' ])=’16’ AND CONDITION2 friend_status= ‘0’(Pending approval Mutual friends)
+—————————+—————————————+
+ 26 + 2020-11-30 +<— SHOULD NOT SHOW -> TABLE_2 CONDITION user_id = ( $_SESSION[ 'SESS_USER_ID' ])=’16’ AND CONDITION2 friend_status= ‘0’ (Pending approval Mutual friends)
+—————————+—————————————+
+ 27 + 2020-11-30 +<— SHOULD NOT SHOW -> TABLE_2 CONDITION user_id = ( $_SESSION[ 'SESS_USER_ID' ])=’16’ AND CONDITION2 friend_status= ‘1’ (Mutual friends)
+—————————+—————————————+
+ 28 + 2020-11-30 +<— SHOULD NOT SHOW -> TABLE_2 CONDITION user_id = ( $_SESSION[ 'SESS_USER_ID' ])=’16’ AND CONDITION2 friend_status= ‘2’ (Blocked)
+—————————+—————————————+
+ 21 + 2020-11-30 +
+—————————+—————————————+
TABLE_2(朋友关系表) friend_status='0' -> 这意味着 'user_id' 等待由 'user_id_resquest' 接受友谊 -> 不要显示在登录 'user_id' 的完整成员列表中 friend_status='1' -> 这个 'user_id' 和 'user_id_resquest' 已经是共同的朋友。 -> 不显示在登录 user_id 的完整成员列表中 friend_status='2' -> 这意味着 'user_id' 被 'user_id_resquest' 阻止 -> 当前登录的 user_id 不显示在成员列表中
+——————————————+—————————+——————————————+—————————————————+
+friendship_id + user_id + user_id_request + friend_status+
+——————————————+—————————+——————————————+—————————————————+
+ 1 + 16 + 26 + 0 +//0->Pending
+——————————————+—————————+——————————————+—————————————————+
+ 2 + 16 + 25 + 0 +//0->Pending
+——————————————+—————————+——————————————+—————————————————+
+ 3 + 16 + 27 + 1 +//1->Mutual
+——————————————+—————————+——————————————+—————————————————+
+ 4 + 21 + 27 + 1 +//1->Mutual
+——————————————+—————————+——————————————+—————————————————+
+ 5 + 16 + 28 + 2 +//2 ->blocked
+——————————————+—————————+——————————————+—————————————————+
TABLE_1(所有用户的表格)
+—————————+—————————————+
+ user_id + signupdate +
+—————————+—————————————+
+ 16 + 2020-11-30 +
+—————————+—————————————+
+ 23 + 2020-11-30 +
+—————————+—————————————+
+ 24 + 2020-11-30 +
+—————————+—————————————+
+ 25 + 2020-11-30 +
+—————————+—————————————+
+ 26 + 2020-11-30 +
+—————————+—————————————+
+ 27 + 2020-11-30 +
+—————————+—————————————+
+ 28 + 2020-11-30 +
+—————————+—————————————+