来自多个表的MySQL查询

时间:2015-04-16 13:44:54

标签: mysql

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

  • 用户 - User_ID,firstName,lastName,email和密码
  • 活动 - 活动ID,用户ID,日期,时间,活动
  • 关注 - Follow_ID,UserID,FollowID

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

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

对于SQL / MySQL,我有点新手,所以我有点迷失。

1 个答案:

答案 0 :(得分: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

使用上述结构。

每次用户关注其他用户时,都会在关注表中添加一条记录。 这是一对多的关系。用户*关注。

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

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

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

然后您可以加入 UserFollow 表来识别每条关注记录的关系(基本上匹配用户a>用户b)。

我不知道这是否有意义。有点难以解释......这有意义吗?