gpt4 book ai didi

mysql 选择两个字段之一,其中一个字段等于一个值

转载 作者:行者123 更新时间:2023-11-30 01:30:39 27 4
gpt4 key购买 nike

我有两个表“用户”和“关系”,我想选择所有用户的关系。

table relations
user1 user2
1 2
1 3
5 1

在上面的示例表中,它保存与用户表相关的ID。

我想选择用户 id 1 的所有关系并加入他 friend 的名字,例如应该返回

id   name
2 demo friends1
3 demo friends2
5 demo friends3

所以我尝试过:-

Select (case user1='1' then r.user2 else r.user1 end) as id,u.name from relations r
join users u on u.id = (case r.user1='1' then r.user2 else r.user1 end)
where (user1 = 1 or user2= 2);

这很接近我想要的。有人可以向我澄清我做错了什么吗?还有更好的方法吗?

最佳答案

你也可以这样做

SELECT *  FROM `users` WHERE id IN (SELECT user1 FROM relations WHERE user2='1')
OR
id IN(SELECT user2 FROM relations WHERE user1='1')

id 1 可以位于 user1user2 中,它将获取所有相关用户

HERE IS YOUR FIDDLE

关于mysql 选择两个字段之一,其中一个字段等于一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17504999/

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