如何使用内部连接查询获得不同的最新记录

Posted

技术标签:

【中文标题】如何使用内部连接查询获得不同的最新记录【英文标题】:How to get distinct and lastest record with inner join query 【发布时间】:2012-12-16 09:52:25 【问题描述】:

我有两个名为:customersbill 的表。客户和账单有一对多的关系。 客户表包含客户 mobileNo、bikeNo 等的记录 账单表包含带有bikeNo(外键),账单日期等的客户账单记录。 我对此有疑问:

SELECT        customer.mobileNo, bill.iDate AS Expr1
FROM            (customer INNER JOIN
                     bill ON customer.bikeNo = bill.bikeNo)
ORDER BY bill.iDate;

现在我如何通过此查询获得不同且最新的账单日期记录和 mobileNo?

【问题讨论】:

【参考方案1】:

使用 GROUP BY 和 MAX():

SELECT customer.mobileNo, MAX(bill.iDate) AS iDate
FROM (customer INNER JOIN
                 bill ON customer.bikeNo = bill.bikeNo)
GROUP BY customer.mobileNo
ORDER BY iDate

【讨论】:

以上是关于如何使用内部连接查询获得不同的最新记录的主要内容,如果未能解决你的问题,请参考以下文章

如何连接具有不同 GROUP BY 级别的两个查询,使一些记录为空

从内部连接表中检索最新记录

如何优化多表连接视图以获得更快的响应?

如何从重复记录中检索mysql表中的最新数据

Sql 查询内部连接表中的不同记录

如何在 SQL 查询中获取最大 Sr 的记录