我有一个巨大的 MSSQL数据库(近120场演出)。该数据库包含1371个表。这些表中只有3个是我当前关注的表。
我将与之合作的表格:
我将与之合作的“消息”表中的字段:
Messages.FromMessageuserID 匹配 MessageUser.MessageUserID
我将与之合作的表“MessageUser”中的字段:
用户ID
MessageUser.UserID 与 User.UserID
我将与之合作的“用户”表中的字段:
现在我可以运行以下查询: SELECT Subject,Body,FromMessageUserID,PriorityID 来自消息
并获得显示的结果:
主体Body FromMessageUserID PriorityID
Sub1 Body1 1001 1
Sub2 Body2 1002 3
Sub3 Body3 1001 2
所以我想看看谁发送了以“Sub3”为主题的消息。
我首先查看MessageUser表,我可以看到MessageUserID为1001的UserID为10.
然后我转到Users表,我可以看到UserID为10的用户名为“JohnDoe”。
我有什么方法可以运行查询,并且返回的结果类似于:
主体Body FromMessageUserID PriorityID
Sub1 Body1 JohnDoe 1
Sub2 Body2 JaneDoe 3
Sub3 Body3 JohnDoe 2
我不关心PriorityID,因为我知道值(总共4个)是什么。
我确信正确的方法是使用JOIN或UNION,但我从未使用它们,而且我在过去几个小时内所做的每一次尝试都失败了。
有什么建议吗?
答案 0 :(得分:1)
试试这个
SELECT m.Subject, m.Body, u.UserName,m.PriorityID FROM Messages m
inner join MessageUser mu on mu.MessageUserId = m.FromMessageUserID
inner join users u on mu.UserID = u.UserID