Mysql查询,用于获取特定用户朋友发布的视频

Mysql查询,用于获取特定用户朋友发布的视频,mysql,Mysql,谁能帮我在mysql中写一个查询来获取某个用户的朋友发布的视频。我有3个表(用户、朋友和视频),表结构如下 用户-id friends-id,用户id[来自用户表],朋友id[来自用户表] 视频-id、用户id[来自用户表]、视频名称 例如:id为1的用户在friends表中映射了3个好友2、3和4。每个朋友都发布了2个视频,映射到视频表中。因此,当我以用户1的身份登录时,我需要列出2、3和4发布的视频及其从用户表中获取的详细信息 提前感谢加入是您需要的。这可用于根据多个表之间的共同点“

谁能帮我在mysql中写一个查询来获取某个用户的朋友发布的视频。我有3个表(用户、朋友和视频),表结构如下


用户-id


friends-id,用户id[来自用户表],朋友id[来自用户表]


视频-id、用户id[来自用户表]、视频名称


例如:id为1的用户在friends表中映射了3个好友2、3和4。每个朋友都发布了2个视频,映射到视频表中。因此,当我以用户1的身份登录时,我需要列出2、3和4发布的视频及其从用户表中获取的详细信息


提前感谢

加入
是您需要的。这可用于根据多个表之间的共同点“链接”多个表。这是正常化的支柱

第一部分是将“Friends”表链接回“Users”表。我将使用一个局部变量(@UserID)并将其设置为您的。我真的不知道您想要从朋友信息中获得什么信息,所以我将在所有查询中使用姓氏和名字的泛型

SET @UserID = 1 -- Your UserID

SELECT     u.LastName, u.FirstName
FROM       Friends    AS f
INNER JOIN Users      AS u ON f.Friends_ID = u.User_ID
WHERE     f.User_ID = @UserID
然后第二部分是将用户链接到视频。此查询将返回用户名信息以及所有视频的名称:

SELECT     u.LastName, u.FirstName, v.video_name
FROM       Users   AS u
INNER JOIN Videos  AS v ON u.User_ID = v.User_ID
现在我们有了基础知识。例如,您希望用户从其所有朋友处获取所有视频。实际上,我们可以将这两个查询合并到一个查询中,以获得以下结果:

SET @UserID = 1 -- Your UserID

SELECT     u.LastName, u.FirstName, v.video_name
FROM       Friends  AS f
INNER JOIN Users    AS u ON f.Friends_ID = u.User_ID
INNER JOIN Videos   AS v ON u.User_ID = v.User_ID
WHERE    f.User_ID = @UserID