【发布时间】:2016-03-30 18:25:45
【问题描述】:
我有以下 2 个表:
A) 表格
关注
ID fk用户名 follow_fkUserName用户资料
ID fk用户名 姓名 姓B) 我要做什么
我想按照以下方式加入这两个表:
ID User_fkUserName 用户名 用户姓氏 Followed_fkUserName Followed_Name Followed_SurnameC) 我的问题:
我的问题是当我尝试通过视图加入时,我没有得到预期的结果。
我希望最终我会得到这样的结果:
Id User_fkUsername User_Name User_Surname Followed_fkUserName Followed_Name Followed_Surname 1 pbean Paul Bean mWhite 玛丽白D) 我正在使用的代码:
以下是我用于加入的代码:
创建视图 [dbo].[vwFollowingUsers] 作为选择 援助, b.名称用户名, c.Surname User_Surname, d.Name Followed_Name, e.Surname Followed_Surname 从以下 左加入用户配置文件 b ON a.fkUserName = b.fkUserName LEFT JOIN UserProfile c ON a.fkUserName = c.fkUserName LEFT JOIN UserProfile d ON a.follow_fkUserName = d.fkUserName LEFT JOIN UserProfile e ON a.follow_fkUserName = e.fkUserNameE) 这就是我得到的:
vwFollowingUsers
Id User_Name Followed_Name 1 保罗·玛丽我在关注这个question
F) 更新代码
在我在这里发布我的问题后,我已经更新了我的代码,如下所示:
创建视图 [dbo].[vwFollowingUsers] 作为选择 援助, B.fkUserName AS User_fkUserName, B.Name AS User_Name, B.Surname AS User_Surname, C.fkUserName AS Followed_fkUsername, C.Name AS Followed_Name, C.Surname AS Followed_Surname 从以下 A A.fkUserName = B.fkUserName 上的 INNER JOIN UserProfile B INNER JOIN UserProfile C ON A.follow_fkUserName = C.fkUserName;G) 实际数据:
这是实际数据(根据要求)
关注
id fkUsername follow_fkUserName 2 nic@gmail.com steph@gmail.com用户资料
Id UserPhoto 描述 fkUserName 姓名 姓氏 1 ../Files/nich.jpg 测试 nich@gmail.com Nich White 2 ../Files/nich2.jpg null nich2@gmail.com Nich2 White2 3 ../Files/steph.jpg null steph@gmail.com Stephania Borg我正在使用 Visual Studio,我正在尝试创建一个视图,该视图将为我提供问题 G 部分中提到的结果。
【问题讨论】:
-
为什么你有 4 个连接,而你可以用两个连接?
-
我试图用两个......但我没有做到:/
-
请提供样本数据和预期输出。并请清除 RDBMS(产品和版本)。目前这被标记为
mysql和sql-server -
@Shnugo 我提供了示例数据和预期输出。谢谢
标签: sql sql-server select join view