显示表1中存储的所有数据以及Table2中与Table1相关的最后一条记录

时间:2017-10-28 12:53:12

标签: mysql

我有一个数据库,我的查询与2个表(ms_recepciones& ms_estados)有关。此数据库用于管理移动修复存储。

Tabla > ms_recepciones

Tabla > ms_estados

ms_recepciones中的记录可能具有不同的状态。这些状态存储在ms_estados的历史记录中。例如:录取,预算,开发票,取消......

它们与密钥id_recepcion

相关

[?]我的问题是:

我需要显示ms_recepciones的所有数据,状态必须只是最后一次在ms_estados中注册。

例如:

如果ms_recepciones的id_recepcion#50具有状态 - >承认,交付,发票。它只显示发票(因为它是最后一个。)。

同一个表格中显示的所有其他招待会一样。

后来我希望过滤:当前状态 - >发票,录取等。

事先,非常感谢你的帮助。我们试图做4个人,没有成功。

SELECT 
   r.id_recepcion, coalesce(max(e.fecha_estado), '0000-00-00 00:00:00') as UltFecha, e.id_estado, e.estado
FROM 
   ms_estados e
INNER JOIN
   ms_recepciones r
ON
   r.id_recepcion = e.id_recepcion
GROUP BY 
   e.id_recepcion

我试过这段代码,但第一行不正确。

问候。

1 个答案:

答案 0 :(得分:0)

问题是,您的COALESCE子句会为您提供最新日期,但e.id_estadoe.estado不一定会为您提供与该最新行匹配的列。

您不是第一个遇到此问题的人。请参阅此问题的答案:Optimize sub-query selecting last record of each group