SQL选择不同的数据

时间:2016-05-24 18:49:39

标签: sql

假设我有名为Orders和OrdersInfo的表。订单表看起来像:

OrderID
1
2
3

和OrdersInfo

OrderID ProductID Amount
1       1         2
1       2         1
2       3         4

我想获得最新OrderID的所有信息。 在这种情况下,答案应该是OrderID 3的信息,该信息将为空。我的问题是我必须对它进行分组,而且我的信息没有正确显示。 我尝试过这样的事情:

SELECT OI.OrderID, OI.ProductID, OI.Amount
FROM OrdersInfo OI
JOIN Orders O
ON OI.OrderID = O.OrderID
GROUP BY OI.OrderID, OI.ProductID, OI.Amount
HAVING OI.OrderID = MAX(O.OrderID)

2 个答案:

答案 0 :(得分:0)

你可以试试这个 -

SELECT
O.OrderID
,OI.ProductID
,OI.Amount

 FROM
(
SELECT
     MAX(OrderID) AS OrderID
FROM Orders
) AS O
LEFT JOIN OrdersInfo AS OI
OI.OrderID=O.OrderID

答案 1 :(得分:-1)

使用LEFT JOIN,您将获得OrderID = 3

的NULL
SELECT TOP 1 O.OrderID, OI.ProductID, OI.Amount
FROM Orders O 
LEFT JOIN OrdersInfo OI
       ON OI.OrderID = O.OrderID
ORDER BY O.OrderId DESC

MSQL Server的USE TOP 1。 postgresql的LIMIT 1