2014-02-24 36 views
0

您好我使用不同的表連接,但它不能正常工作。只有第一項正常工作。在重複項獲取手段後user.user_id列只有第一個user_id得到明確(我有組相同的user_id)。在第一個ID後,我得到重複id.my查詢如下。請在這方面幫助我。不同的表連接不能正常工作

@"distinct timesheet.user_id, timesheet.created_date," 
      + " [user].first_name,[user].last_name") 

      .From(@"timesheet " 
        + "INNER JOIN [user] ON [user].user_id = timesheet.user_id " 
        + "INNER JOIN timesheet_status ON timesheet.timesheet_status_id = timesheet_status.timesheet_status_id" 
+1

DISTINCT關鍵字適用於整個行,所以如果你有相同的USER_ID與多個不同的時間表你顯然會得到USER_ID多次顯示。 –

+0

@AnthonyGrist是有什麼辦法讓 – King

+0

你能告訴你正在試圖獲得結果數據的例子和? – twoleggedhorse

回答

0

聽起來像是你需要一個GROUP BY條款:

SELECT  timesheet.user_id 
      ,MIN(timesheet.created_date) As first_created_date 
      ,MIN([user].first_name) AS first_name 
      ,MIN([user].last_name) AS last_name 
FROM  timesheet 
      INNER JOIN [user] ON [user].user_id = timesheet.user_id 
      INNER JOIN timesheet_status 
       ON timesheet.timesheet_status_id = timesheet_status.timesheet_status_id 
GROUP BY timesheet.user_id 

上面的代碼將獲得每個USER_ID最早(MIN)的時間表,包括其名稱。對於最新的時間表,您可以將關鍵字MIN更改爲MAX

+0

afetr執行我正在得到folowing異常。在'GROUP'附近預期條件的上下文中指定的非布爾類型的表達式。 – King

+0

@King我已經更新了我的答案,因爲我錯過了加盟條件 – twoleggedhorse

+0

ķ感謝。其實我已經寫了不同的查詢和working.I會嘗試使用上面的查詢,以取代 – King