sql - 检索最后(最新)不同的最高值

标签 sql mysql

我想从表 tblquoteproposal` 中检索最近的 requestid,这里的特定 customerId 为 3,在此示例中为 ID 2 和 ID 4。

表tblrequest requestid 客户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

并将此查询的结果提供给您需要的任何东西? (这可以是一个子查询)。

例如,您的完整解决方案可能如下(我正在使用 LEFT OUTER JOIN 因为您这样做了,我不确定它是否正确,也许 INNER JOIN 更合适):<​​/p>

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/

相关文章:

java - 根据用户输入在PreparedStatement中使用setTime()或setNull()

MySQL删除数据库中超过一个月的条目

mysql - 原子地更改 mySQL 中的多行

mysql 选择某些信息并计数

mysql - 转置 SQL 表的最简洁方法

mysql - 如何在mysql中获取行id

mysql - mysql没有找到记录怎么处理?

c# - 如何从纯文本解析 C# 中的存储过程签名

c# - IQueryable 命令超时

php - fatal error : Call to a member function getObject() on a non-object