假设我有2个表格:Customers和Orders。客户可以有许多订单。SQL语句帮助 - 为每个客户选择最新订单
现在,我需要向他的最新订单展示任何客户。这意味着如果客户有多个订单,则仅显示具有最新进入时间的订单。
这是我对我自己有多远管理:
SELECT a.*, b.Id
FROM Customer a INNER JOIN Order b ON b.CustomerID = a.Id
ORDER BY b.EntryTime DESC
当然这将返回所有客户与一个或更多的订单,首先显示的每个客户,这不是我想要的最新订单。我的思想在这一点上陷入了一种尴尬的局面,所以我希望有人能够指引我正确的方向。
出于某种原因,我认为我需要在某处使用MAX语法,但它现在只是逃避我。
UPDATE:通过几个答案会在这里后(有很多!),我意识到我犯了一个错误:我的意思是与他的最新记录任何客户。这意味着如果他没有订单,那么我不需要列出他。
UPDATE2:修复了我自己的SQL语句,这可能不会引起其他人的混淆。
您的客户表具有的OrderId。是对的吗? – 2008-12-01 16:43:24
是的,正如SQL中所暗示的那样。 – alextansc 2008-12-01 16:51:54
如果您的客户表有一个OrderID,您的问题就没有意义。如果确实如此,你会说每一份订单都有不同的客户。你确定你的Order表没有CustomerID吗? – 2008-12-01 17:24:16