0
假設我有3個表:顯示基於活動的日期在MySQL表中的特定字段
A) Table UsrHeader
-----------------
UsrID | UsrName
-----------------
1 | Abc
2 | Bcd
B) Table UsrDetail
-------------------------------
UsrID | UsrLoc | Date
-------------------------------
1 | LocA | 10 Aug 2012
1 | LocB | 15 Aug 2012
2 | LocA | 10 Aug 2012
C) Table Trx
-----------------------------
TrxID | TrxDate | UsrID
-----------------------------
1 | 10 Aug 2012 | 1
2 | 16 Aug 2012 | 1
3 | 11 Aug 2012 | 2
我想要做的是顯示如表:
---------------------------------------
TrxID | TrxDate | UsrID | UsrLoc
---------------------------------------
1 | 10 Aug 2012 | 1 | LocA
2 | 16 Aug 2012 | 1 | LocB
3 | 11 Aug 2012 | 2 | LocA
注意到有是一個用戶,但位置不同。這是基於UsrDetail表,指定日期的用戶已移至其他位置。因此,它應該在每個交易上顯示該日期的用戶特定位置。
我曾嘗試這個代碼,但沒有運氣:
SELECT trx.TrxID, trx.TrxDate, trx.UsrID, User.UsrName, User.UsrLoc
FROM trx
INNER JOIN
(SELECT UsrHeader.UsrID, UsrHeader.UsrName, UserDetail.UsrLoc
FROM UsrHeader
INNER JOIN
(SELECT UsrDetail.UsrID, UsrDetail.UsrLoc, UsrDetail.Date
FROM UsrDetail
) AS UserDetail ON UserDetail.UsrID = UsrHeader.UsrID
) AS User ON User.UsrID = trx.UsrID
AND trx.TrxDate >= User.Date
如何做到這一點?謝謝。
嗨,謝謝!它很棒! :) –