gpt4 book ai didi

mysql - 如何修复Sql查询

转载 作者:行者123 更新时间:2023-11-29 16:03:20 25 4
gpt4 key购买 nike

请我一直在尝试获取一个查询来返回用户拥有的 friend ,在我的成员(member)表中,我有用户 ID、成员(member)的名字和姓氏,我在 friend 表中有用户 ID 列和 friend ID 列,现在我将我的成员(member)表与 friend 表结合起来,这样我就可以获得 friend 的名字。

用户表

user_id 名字 姓氏

   2      John        drake         
3 Hamer Joy
4 Finter Richy

好友表

friend ID 用户 ID friend ID

   1           2          3         
2 4 2
3 4 3

这是我执行的查询

SELECT a.friends_id,a.user_id, 
a.friend_id, b.firstname, b.lastname
FROM friends AS a,users As b
WHERE (a.friend_id = b.user_id OR a.user_id = b.user_id) AND
(a.friend_id = 2 OR a.user_id =2)

这是我得到的结果

friends_id  user_id  friend_id  firstname   lastname    
1 2 3 John drake
1 2 3 Hamer Joy
3 4 2 John drake
3 4 2 Finter Richy

这就是我期待的结果

friends_id  user_id  friend_id  firstname   lastname    
1 2 3 Hamer Joy
3 4 2 Finter Richy

最佳答案

也许可以将指定个人的好友加上把他作为好友的用户组成一个并集:

select a.friends_id, a.user_id, a.friend_id, b.firstname, b.lastname
from friends a, users b
where a.user_id = 2 and b.user_id = a.friend_id

union

select a.friends_id, a.user_id, a.friend_id, b.firstname, b.lastname
from friends a, users b
where a.friend_id = 2 and b.user_id = a.user_id

这都是由 2 个内部查询联合产生的单个查询。

关于mysql - 如何修复Sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55961757/

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