首页 文章

来自多个表的MySQL查询

提问于
浏览
0

我的数据库中有3个MySQL表 . 他们是:

  • Users - User_ID,firstName,lastName,email和Password

  • Activity - Activity_ID,UserID,日期,时间,活动

  • Follow - Follow_ID,UserID,FollowID

我希望能够生成一个输出(到XML,但我已经完成了),这将为set用户遵循的用户提供活动 .

例如:用户1跟随用户2,3和5,而不是用户4 . 因此,对于该用户,仅显示来自用户2,3和5的活动 . 但是对于跟随用户3和4的另一个用户,仅显示3和4 .

对于SQL / MySQL,我有点新手,所以我有点迷茫 .

1 回答

  • 0

    看看使用连接,这将是你想要使用的 . 我还会重新评估你的表结构,我认为你的表结构中有错误的逻辑......

    像这样的东西作为一个例子(不正确,但给你一个想法):

    select * from dbo.Users as usr
    join dbo.follow as flw on usr.userId = flw.usrId
    join dbo.Activity as act on act.UserId - flw.userID
    

    以下是DB的示例结构:
    enter image description here

    通过使用上述结构 .

    每次用户跟随另一个用户时,都会将一条记录添加到 Follow 表中 . 这是一对多的关系 . 用户*关注 .

    您现在可以查询类似的内容:

    select followId from dbo.Follow as flw where flw.UserId = 123
    

    这将返回对用户所关注的所有用户的引用 .

    然后,您可以加入 UserFollow 表以标识每个跟踪记录的关系(基本上匹配用户a>用户b) .

    如果这是有道理的,我不知道 . 有点难以解释......这有意义吗?

相关问题