【问题标题】:Many to many relation filter多对多关系过滤器
【发布时间】:2013-12-09 05:52:00
【问题描述】:

我有以下表格:

user (id, firstname, lastname)

follow (id, follower_id, following_id)

现在假设我们有 id 为 1、2、3、4、5 的用户

并且user_id = 1 已经关注用户 2 和 3。

现在我想写一个查询,给我user_id's 我没有关注(user_id = 1) 是(4 和 5)。

有人可以帮忙吗。

【问题讨论】:

  • 您尝试过任何解决方案吗?
  • 是的,我想说的最好的是得票最多的。

标签: mysql sql select join notin


【解决方案1】:

应该这样做:

SELECT id FROM user 
WHERE 
    id NOT IN 
    (
        SELECT following_id 
        WHERE follower_id = 1 --(or you can use any user i, i used 1 to show an example)
    )

【讨论】:

    【解决方案2】:
    SELECT * FROM user_table
    LEFT JOIN follow_table ON user_table.id = follow_table.following_id
    WHERE follow_table.following_id IS NULL
    

    【讨论】:

      【解决方案3】:

      试试这个:

      SELECT * FROM user_table ut
      LEFT JOIN follow_table ft ON ut.id = ft.following_id AND ft.follower_id = 1
      WHERE ft.following_id IS NULL
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-19
        • 2020-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        相关资源
        最近更新 更多