需要选择最后一个InvoiceID和相应的字段。整个sql包含几个内部连接。SQL - 选择最大ID字段
SELECT max(InvoiceID),
InvoiceEndDate
FROM Invoices
WHERE TransactionOrderItemID = '000831'
现在,我正在InvoiceID,并有再次读取该InvoiceEndDate。
有没有这样做的有效方式?
需要选择最后一个InvoiceID和相应的字段。整个sql包含几个内部连接。SQL - 选择最大ID字段
SELECT max(InvoiceID),
InvoiceEndDate
FROM Invoices
WHERE TransactionOrderItemID = '000831'
现在,我正在InvoiceID,并有再次读取该InvoiceEndDate。
有没有这样做的有效方式?
SELECT InvoiceID, InvoiceEndDate
FROM Invoices
WHERE TransactionOrderItemID='000831'
ORDER BY InvoiceID DESC
LIMIT 1
SELECT InvoiceID, InvoiceEndDate
FROM Invoices INV
WHERE TransactionOrderItemID='000831'
AND INV.InvoiceID = (SELECT MAX(SUB.InvoiceID)
FROM Invoices SUB WHERE SUB.TransactionOrderItemID='000831');
在Including an Aggregated Column's Related Values看看有哪几种方法来完成此
好吧,我不知道它是MySQL ...我在第一个答案中看到TOP,并假定它是SQl Server – SQLMenace 2009-12-04 18:15:59
很高兴我看到了。如果这样做,它比我建议的方式更容易... – Kendrick 2009-12-04 18:11:42
OP说MySQL,所以限制1将需要在顺序之后,而不是选择列表之前的TOP 1。 – 2009-12-04 18:14:02
@martin:good catch =) – 2009-12-04 18:18:36