gpt4 book ai didi

mysql - 检索 2 个连接表的相似列

转载 作者:行者123 更新时间:2023-11-29 12:03:56 24 4
gpt4 key购买 nike

我需要获取 2 个用户(dummy4 和 dummy 5)的所有共同 friend 然后检索他们所有的 fname、lname 和个人资料图片。

用户信息

id    fname      lname     profile_pic

1 barrack obama 1.jpg
2 tom jones 2.jpg
3 dummy1 dummy1 3.jpg
4 dummy2 dummy2 4.jpg
5 dummy3 dummy3 5.jpg
6 dummy4 dummy4 6.jpg

friend

counter     user_id        friend_id      request_status
1 2 1 friend
2 4 5 friend
3 3 4 friend
4 5 3 friend
5 1 6 waiting
6 6 3 friend
7 1 3 friend
8 2 6 waiting
9 1 4 friend
10 3 2 friend
11 5 1 canceled
12 4 6 friend

这是我尝试过的查询

SELECT profile_pic, fname, lname FROM 
user_info JOIN friend ON
(friend.friend_id = user_info.id OR friend.user_id = user_info.id) AND
((friend.user_id = 3 OR friend.friend_id = 4) AND
(friend.user_id = 4 OR friend.friend_id = 3))
AND friend.request = 'friend' GROUP BY user_info.id

但它什么也没返回。

我想让结果是这样的

id              fname             lname              profile_pic
1 barrack obama 1.jpg
5 dummy1 dummy1 5.jpg
6 dummy4 dummy4 6.jpg

最佳答案

只使用exists怎么样?

SELECT u.*
FROM user_info u
WHERE EXISTS (SELECT 1
FROM friend f
WHERE u.id IN (f.user_id, f.friend_id) AND
$friend1 IN (f.user_id, f.friend_id) AND
f.request_status = 'friend'
) AND
EXISTS (SELECT 1
FROM friend f
WHERE u.id IN (f.user_id, f.friend_id) AND
$friend2 IN (f.user_id, f.friend_id) AND
f.request_status = 'friend'
) AND
u.id NOT IN ($friend1, $friend2);

我不知道你是如何代表 friend 们的。您的示例数据中没有任何名为“dummy5”的内容,因此它们仅由上述代码中的变量表示。

关于mysql - 检索 2 个连接表的相似列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892051/

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