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