gpt4 book ai didi

php - MYSQL - 随机选择两个用户没有相互关注的行?

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

我正在构建一个应用程序,旨在向用户显示一个从列表中随机选择的用户,他/她可能喜欢关注他们尚未相互关注的用户。

我有 2 个表,一个表有用户列表,第二个表有 2 列显示“跟随”关系。

表 1 用户 - user_id, instagram_id, join_date

表 2 users_follow - instagram_id_1, instagram_id_2

我只是想知道是否有人可以指出正确的方向,告诉我如何创建连接并选择一个随机行,其中 2 个用户没有相互关注?我已经尝试过左连接,但到目前为止没有任何运气。

这是目前的代码

SELECT * 
FROM users
INNER JOIN `user_follows` ON users.instagram_id = user_follows.instagram_id
WHERE user_follows.instagram_id != 'insta123'

感谢您的帮助。

最佳答案

我建议您进行子查询以获取关注者列表。然后使用 LEFT JOIN 并通过测试 NULL 找到那些不是追随者的人。

SELECT users.* from users
left join
(
SELECT
users_follows.instagram_id_2 as 'instagram_id'
from users
inner join users_follows on users.instagram_id=users_follows.instagram_id_1
where users.instagram_id = 'insta123'
) as followers on users.instagram_id = followers.instagram_id
where followers.instagram_id is null
and users.instagram_id != 'insta123' # you can't follow yourself

我已经用您的结构的副本对其进行了测试,它工作正常。

关于php - MYSQL - 随机选择两个用户没有相互关注的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081969/

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