我有四個表SQL服務器:重複加入4個表
Customers
- PK:CustomerID
Events
- PK:EventID
Customers_Events
- 加入含一桌兩FK的CustomerID
和EventID
Customer_Checkins
- 包含一個時間戳列(CheckinDateTime
)和一個FK參考CustomerID
我想這樣
CustomerName EventName CheckinDateTime
------------ ---------- ---------------
Peter Christmas 2012-12-25 00:27:48.350
Peter Valentines 2013-02-14 01:19:36.113
Peter Spring 2013-05-20 02:13:53.710
問題的輸出是,我得到這樣的結果,而不是
CustomerName EventName CheckinDateTime
------------ ---------- ---------------
Peter Christmas 2012-12-25 00:27:48.350
Peter Christmas 2013-02-14 01:19:36.113
Peter Christmas 2013-05-20 02:13:53.710
Peter Valentines 2012-12-25 00:27:48.350
Peter Valentines 2013-02-14 01:19:36.113
Peter Valentines 2013-05-20 02:13:53.710
Peter Spring 2012-12-25 00:27:48.350
Peter Spring 2013-02-14 01:19:36.113
Peter Spring 2013-05-20 02:13:53.710
每個有效記錄返回三次
這是我使用的腳本得到以上結果
SELECT DISTINCT
Customers.Firstname, Events.EventName, CustomerCheckins.CheckinDateTime
FROM
CustomerCheckins
INNER JOIN
Customers_Events ON CustomerCheckins.CustomerID = Customers_Events.CustomerID
LEFT OUTER JOIN
Customers ON Customers_Events.CustomerID = Customers.CustomerID
RIGHT OUTER JOIN
Events ON Customers_Events.EventID = Events.EventID
WHERE
(Customers_Events.CustomerID = 1887)
我真的很感謝一些幫助解決這個問題。我覺得我已經嘗試過劇本中的每一個組合。
我不知道爲什麼你在哪裏downvoted。你提供的代碼實際上工作:-) - 除了一個小問題: 返回的三行中的時間戳都是一樣的 – Raydk
由於我在我的回答中描述的原因,它沒有爲每個事件選擇正確的日期。 –
Btw。分組和區別有什麼區別? – Raydk