gpt4 book ai didi

mysql - 寻找用户的好友

转载 作者:行者123 更新时间:2023-11-28 23:33:21 26 4
gpt4 key购买 nike

enter image description here

我有一个包含不同字段的用户表:id、firstname、name。我有一个名为 friend 的表,其中包含不同的字段:invite_id、friend_sender(用户 ID)、friend_receiver(用户 ID)、validity( bool 值)。

我正在用

填充 friend 表
1, 1, 2, 0;
2, 3, 1, 1;
3, 1, 5, 1;

假设我是用户 1,我想找到我所有的 friend 。我可以是好友邀请的发送者(发送者),也可以是接收者(接收者)。当接收者接受邀请时,关系的有效性设置为 1。例如,我不是用户 2 的 friend ,因为他没有接受。

我对用户 1 进行查询应该得到的结果应该是:

3, firstnameofuser3, nameofuser3
5, firstnameofuser3, nameofuser3

我尝试了一些 SQL 操作,双连接,重命名表以避免“双同表”问题等......但我无法弄清楚。

我找到了一些关于它的帖子,但对于更复杂的事情,就像这里: Finding mutual friend sql

预先感谢您的帮助。

最佳答案

我知道已经有答案了,但我的答案是独一无二的,而且我有一把 fiddle ! ;)

SELECT
id,
firstname,
name
FROM
user
WHERE id IN
(
SELECT
CASE WHEN friend_sender = 1 THEN friend_receiver ELSE friend_sender END
FROM friend
WHERE
(friend_sender = 1 OR friend_receiver = 1)
AND
validity = 1
)

fiddle : http://sqlfiddle.com/#!9/d8f55a/1

关于mysql - 寻找用户的好友,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634166/

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