代码之家  ›  专栏  ›  技术社区  ›  chuck taylor

此SQL查询中是否需要联接?

sql
  •  0
  • chuck taylor  · 技术社区  · 15 年前

    假设我在SQL中有一个表订单,其中有4列(orderid int、productid int、price money、size int),其中orderid和productid是一个联合主键。

    如果我希望查询返回每个产品(即最大订单号)的最新订单(以及价格和大小),是否有一种不使用联接的方法来完成此操作?

    select o.OrderId, o.ProductId, o.Price, o.Size
    from Orders o inner join 
    (select Max(OrderId) OrderId, ProductId from Orders group by ProductId) recent
    on o.OrderId = recent.OrderId and o.ProductId = recent.ProductId
    

    2 回复  |  直到 15 年前
        1
  •  2
  •   Drew McGhie    15 年前

        2
  •  0
  •   Sage    15 年前
    select
     MAX(o.OrderId) as NewestOrderID,
     o.ProductId,
     o.Price,
     o.Size
    from Orders o
    Group by
     o.ProductId,
     o.Price,
     o.Size