python - 如何根据多对多关系从多个表中进行选择?

标签 python mysql join many-to-many

我正在尝试创建一个 select 语句,该语句将根据两个表中的条件返回关注特定用户的用户列表。我在我的数据库中创建了以下关系。 (传入 10/10 毫秒绘画技能)

Table Design

例如,我要输出的是关注 tim (follower) 的用户,这些用户在用户表中将通知设置为 0。 从那里我可以用结果以编程方式做我想做的事。

到目前为止,我已经尝试过内部连接,

SELECT users.username FROM users
INNER JOIN followers
ON users.username = followers.followed
WHERE followers.followed = users.username AND 
users.username = 'tim' 

而且我似乎不知道如何正确地格式化它。

最佳答案

如果您使用“userid”而不是“follower”字符串,而不是“follower”,则使用“followerid”会更清晰。

在这种情况下,followers 表中的 userid=1(tim 用户 ID)。

那么查询将是:

select * from users where notifications=0 and id in (select followerid from 
followers where userid=1)

如果您需要坚持该结构:

select * from users where notifications=0 and username like (select follower from 
followers where followed like 'tim')

关于python - 如何根据多对多关系从多个表中进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46747512/

相关文章:

php - 如何通过连接计数在 mysql 中排序数据?

python - 在 python 中用 '\"' 替换双引号

python - 如何选择n维数组中的值

java - 使用 Hibernate 保存对象

MySQL 全文没有返回任何明显应该返回的结果

MySQL 棘手的双重/三重 JOIN(?)

python - 在 drf 中应该使用什么通用 View 来创建好友请求?

python - 如何在Python中获得立方根

mysql - 如何生成一个 View ,其中包含来自辅助 View 的总和?

mysql - 将多个子行合并为一行MYSQL