我想从表tblquoteproposal中检索perticula customerId的最新requestid,这里是3,在这个示例中是ID 2&ID 4。
表tblrequest
请求ID客户ID
6 2个
7 4个
8 3个
9 3个
tblquoteproposal

 id requestid QuotePraposalLink comment
 1  6          jgj               mghm
 2  7         jhgj               hjgj
 3  8         xyz1              rifsf
*4  8         xyz2              ri2sf*
 5  9         xyz3              ri3sf
*6  9         xyz4              ri4sf*

在这个表中requestid是外键。
还有一个表tblrequest的主键是requestid
我已经编写了以下查询,但它没有给出正确的结果:
SELECT r.RequestId,r.ConsultantId,(SELECT concat(FirstName,' ',LastName)
                                   FROM tbluser
                                   WHERE UserId = v_userId) as "Customer",
       r.RequestDate,r.QuoteDetailsFileLink,r.Requestcomment,r.CustomerId,
       qp.QuotePraposalLink,qp.Comment
FROM tblrequest r
LEFT OUTER JOIN tblquoteproposal qp ON r.RequestId=qp.RequestId
WHERE r.customerid=v_userId
GROUP BY r.RequestId
ORDER BY qp.id ;

最佳答案

为什么不试试:

SELECT MAX(id)
FROM tblquoteproposal
GROUP BY requestid

把这个查询的结果反馈给你需要的任何东西?(这可以是子查询)。
例如,您的完整解决方案可能如下(我使用左外连接是因为您这样做了,我不确定它是否正确,也许内部连接更合适):
SELECT ... your fields ...
FROM
    tblquoteproposal p LEFT OUTER JOIN tblrequest r
        on p.requestid = r.requestid
WHERE p.id IN (
    SELECT MAX(id)
    FROM tblquoteproposal
    GROUP BY requestid )

关于sql - 检索最后(最新)不同的最高值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1227619/

10-13 09:29