假设我有名为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)
答案 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
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