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

时间:2017-10-14 17:43:18

标签: python mysql join many-to-many

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

Table Design

我想要输出的是用户跟随tim,(关注者),在users表中将通知设置为0。 从那里,我可以用编程方式完成我想要的结果。

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

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

我似乎无法弄清楚如何正确格式化。

1 个答案:

答案 0 :(得分:1)

如果您使用“跟随”字符串代替'userid'而不是'follower'代表'followerid',那么会更清洁。

在这种情况下,将在关注者表中使用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')