gpt4 book ai didi

MySQL从第三个表中进行复杂的选择查询过滤

转载 作者:行者123 更新时间:2023-11-29 06:39:09 25 4
gpt4 key购买 nike

我有三张 table 。

用户、 friend 和社区用户表。

我正在尝试建立一个类似 Facebook 的群组系统。用户将尝试从好友列表中搜索他/她的好友并将其添加到群组中。

所以我在这里尝试删除那些已经添加到群组中的 friend 。这里的组用户表是communityusers..

这是我的 communityusers 表的结构。

id | community_id | user_id 

我无法在当前查询中使用此表。

SELECT f.id, u.id as user_id, u.userName, u.firstName, u.lastName, u.profilePic from friends f, users u

WHERE CASE
WHEN f.following_id=1
THEN f.follower_id = u.id
WHEN f.follower_id=1
THEN f.following_id = u.id
END
AND
f.status= 2
AND
(
u.firstName LIKE 's%' OR u.lastName LIKE 's%'
)

此查询返回用户 ID 1 的好友列表,现在我想排除从 communityusers 表中过滤的用户。此查询中的 user_id 不应出现在 communityusers 表中。如何从 communityusers 或第三个表中过滤此内容?

如果问题不清楚,请告诉我。

任何建议、想法和帮助将不胜感激。非常感谢。

编辑

运行查询后我得到 enter image description here

我的communityusers

enter image description here

See user_id = 2 也是从上面的查询中选择的。我想从结果中删除 user_id = 2,因为它存在于 communityusers 表中。

我正在尝试创建一个 fiddle ,但由于某种原因它不适合我。

再次感谢您。

最佳答案

@萨德克只需使用 not in, in where 条件即可

SELECT f.id, u.id as user_id, u.userName, u.firstName, u.lastName, u.profilePic
from friends f inner join users u on
CASE WHEN f.following_id=1 THEN f.follower_id = u.id WHEN f.follower_id=1 THEN f.following_id = u.id
END AND f.status= 2
where u.id not in (select distinct user_id from communityusers) and (u.firstName LIKE 's%' OR u.lastName LIKE 's%')

关于MySQL从第三个表中进行复杂的选择查询过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52491988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com