我有這個疑問:如何在SQL查詢中添加列, LEFT OUTER JOIN
SELECT p.ProductName,
dt.MaxTimeStamp,
p.Responsible
FROM Product p
LEFT JOIN (SELECT ProductID, MAX(TimeStamp) AS MaxTimeStamp
FROM StateLog
WHERE State = 0
GROUP BY ProductID, State) dt ON p.ProductID = dt.ProductID
ORDER BY p.ProductName;
它的工作原理像它應該,但現在我需要選擇「國家」出來了。
棘手的部分是,我只想要最新的「時間戳」,其中「狀態」爲假。 但現在我還需要最新的「TimeStamp」的「國家」。
我嘗試這樣做:
SELECT p.ProductName, dt.State, dt.MaxTimeStamp, p.Responsible
FROM Product p
LEFT JOIN (SELECT ProductID, MAX(TimeStamp) AS MaxTimeStamp, State
FROM StateLog
WHERE State = 0
GROUP BY ProductID, State) dt ON p.ProductID =dt.ProductID
ORDER BY p.ProductName;
但它沒有工作,因爲它給我的「國家」,爲最新的「時間戳」。
所以我希望有一些聰明的頭腦可以幫助我。我猜測這要麼很簡單,要麼很難解決。
Thx爲我編輯它tvanfosson。下次我會盡力讓自己變得更好。 – radbyx 2010-05-27 00:31:03
但您過濾'state = 0',所以狀態將始終爲0 ... – 2010-05-27 00:31:44
@radbyx - 使用0101按鈕或縮進代碼樣本4個空格。你也可以使用反引號''''來排列格式。 – tvanfosson 2010-05-27 00:32:44