2012-08-23 44 views
0

我有一個巨大 MSSQL數據庫(近120演出)。該數據庫包含1371個表。這些表格中只有3個是我目前關注的表格。sql多表替換表

表,我與合作:

  1. 消息
  2. MessageUser
  3. 用戶

字段表中的 「消息」,我與合作:

  • 主題
  • 身體
  • FromMessageUserID
  • PriorityID

Messages.FromMessageuserID比賽MessageUser.MessageUserID

字段中,我將與工作表 「MessageUser」:

  • MessageUserID
  • 用戶名

    MessageUser.UserID比賽User.UserID

字段表中的 「用戶」,我與合作:

  • 用戶名
  • 用戶名

現在我可以運行的查詢: SELECT主題,正文,FromMessageUserID,PriorityID 從郵件中

,並且得到了這樣顯示的結果:

Subject Body FromMessageUserID PriorityID

Sub1 Body1 1001 1

分公司2 Body2 1002 3

Sub3中Body3 1001 2

所以我想看到誰用 「Sub3中」 爲題發來的消息。

我通過查看MessageUser表開始,我可以看到,1001 MessageUserID有10

一個用戶名,然後我去用戶表,我可以看到,10 userid的用戶名「JohnDoe」。

有什麼辦法,我運行一個查詢,並有返回的結果可能類似於此:

受檢者身體FromMessageUserID PriorityID

Sub1的Body1 JOHNDOE 1

分公司2 Body2 JaneDoe 3

Sub3 Body3 JohnDoe 2

我不關心PriorityID,因爲我知道什麼值s(總共4個)是。

我相信正確的方法是使用JOIN或UNION,但是我從來沒有使用過它們,並且我在過去幾個小時中所做的每一次嘗試都失敗了。

有什麼建議嗎?

回答

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 
+0

,完美的工作!謝謝 :) –