我有这个疑问:如何在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