我有一个巨大的MSSQL 数据库(近 120 个演出)。该数据库包含 1371 个表。这些表中只有 3 个是我目前关心的。
我将使用的表:
- 留言
- 消息用户
- 用户
我将使用的“消息”表中的字段:
- 主题
- 身体
- FromMessageUserID
- 优先ID
Messages.FromMessageuserID匹配MessageUser.MessageUserID
我将使用的“MessageUser”表中的字段:
- 消息用户ID
用户身份
MessageUser.UserID匹配User.UserID
我将使用的“用户”表中的字段:
- 用户身份
- 用户名
现在我可以运行查询:SELECT Subject, Body, FromMessageUserID, PriorityID FROM Messages
并获得如下显示的结果:
主题正文 FromMessageUserID PriorityID
Sub1 主体 1 1001 1
Sub2 身体 2 1002 3
Sub3 主体 3 1001 2
所以我想看看是谁发送了以“Sub3”为主题的消息。
我首先查看 MessageUser 表,我可以看到 MessageUserID 为 1001 的 UserID 为 10。
然后我转到用户表,我可以看到用户 ID 为 10 的用户名是“JohnDoe”。
我有什么方法可以运行查询,并且返回的结果类似于:
主题正文 FromMessageUserID PriorityID
Sub1 Body1 JohnDoe 1
Sub2 Body2 JaneDoe 3
Sub3 Body3 JohnDoe 2
我不关心 PriorityID,因为我知道这些值(总共 4 个)是什么。
我确信解决此问题的正确方法是使用 JOIN 或 UNION,但是我从未使用过它们,过去几个小时内我所做的每一次尝试都失败了。
有什么建议吗?