【发布时间】:2021-05-02 11:29:34
【问题描述】:
希望你一切都好:)。
我在 sql 中遇到了一个我无法解决的问题。我想让所有还不是朋友的人都与没有元组的用户成为朋友。
也就是说,在我的列user_id或contact_user_id中,如果:user_id = 1和contact_user_id = 2(他们是朋友),它不会向用户2显示它不是用户的朋友1.
它应该向用户 2 显示他缺少用户 3,4 而不是 1 也不是他自己
我目前有这样的请求,但它没有显示出良好的预期结果。
非常感谢花时间回答的人
他们是没有第一行的期望结果(因为他们已经是朋友):
我暂时得到了这个 sql 语句:
select us.user_id, us.login
from user us where u.user_id!=2
and not exists (select 1 from contact ctc
where ctc.contact_user_id = us.user_id
and ctc.user_id = 2);
编辑:我可能创建了 sql 请求
select u.*
from user u
where not exists (select 1
from contact c
where (c.user_id = u.user_id and c.contact_user_id = 2) or (c.contact_user_id= u.user_id and c.user_id=2)
);
【问题讨论】:
-
编辑您的问题并将示例数据和所需结果显示为文本而不是不可读的图像。