gpt4 book ai didi

php - 用一个sql查询选择两行

转载 作者:行者123 更新时间:2023-11-29 06:32:13 26 4
gpt4 key购买 nike

大家好我有这个表结构

id | u_id2 | u_id2
1 | 8 | 10
2 | 10 | 1
3 | 9 | 8
4 | 1 | 8

通过这个 sql 查询,它尝试获取所有具有 8 作为 user_id 的 friend 关系

SELECT 
u.id
FROM up2_users u
RIGHT JOIN up2_friends f
ON u.id = f.u_id1
WHERE f.u_id1 = :user_id OR f.u_id2 = :user_id

结果还可以,但不完全正确。 :user_id = 8

8, 9, 1

您在上表中看到 8 是 :user_id,它应该从 f.u_id2 返回 10 而不是 8

但是如果我输入

ON u.id = f.u_id1 AND u.id = f.u_id2

我得到所有结果加倍和 8s

有没有办法在单个查询中完成我所需要的?

正确的返回应该是 10, 9, 1

最佳答案

对于此查询,您不需要join。您确实希望有条件地返回 other 用户 ID,因此使用 case:

SELECT (case when f.u_id1 = :user_id then f.u_id2 else f.u_uid1 end) as id              
FROM up2_friends f
WHERE f.u_id1 = :user_id OR f.u_id2 = :user_id;

如果您不想重复,请使用select distinct

关于php - 用一个sql查询选择两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214697/

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