私は4つのテーブルを持っています
Customers
- PK:CustomerID
Events
- PK:EventID
Customers_Events
- 2 つの 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
有効な各レコードが 3 回返されます
これは、上記の結果を得るために使用するスクリプトです
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)
この問題を解決するための助けをいただければ幸いです。スクリプトのすべての組み合わせを試したと思います。