【发布时间】:2011-11-08 17:16:29
【问题描述】:
我正在尝试对我们为有关数据库记录方面的事务保留的表运行查询。更具体地说,当我们“过期”一个“资产”(我们称之为)时,我们在主表中将其状态更改为过期,然后在另一个中记录它何时过期的记录(这不是我的设计)。
问题是,有时最终用户对前端不耐烦,我们最终会为另一个表中的特定记录处理多个过期事务。
有问题的表格如下:
+---------------+-----------------------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-----------------------------+------+-----+-------------------+-------+
| m_id | int(11) | NO | PRI | 0 | |
| a_ordinal | int(11) | NO | PRI | 0 | |
| date_expired | datetime | NO | PRI | | |
| expire_state | enum('EXPIRED','UNEXPIRED') | YES | | NULL | |
| note | text | YES | | NULL | |
| created_by | varchar(40) | YES | | NULL | |
| creation_date | datetime | NO | | | |
| updated_by | varchar(40) | NO | | | |
| last_update | timestamp | NO | | CURRENT_TIMESTAMP | |
+---------------+-----------------------------+------+-----+-------------------+-------+
据我所知,m_id、a_ordinal 和 date_expired 构成了一个复合键。
我需要查询表以显示每个过期记录(m_id、a_ordinal、expired_date)的最近事务。目前它显示的是 809 条记录,但那是因为我们可以有多个记录何时过期的实例:
| 2223 | 20 | 2011-05-02 12:15:43 | EXPIRED | 165 Plays. Program quality is poor.
| 2223 | 20 | 2011-05-02 12:16:05 | EXPIRED | 165 Plays. Program quality is poor.
我知道它涉及一个带有连接的子查询,(或者可能不是?)但我使用 MySQL 已经 5 年了,我已经很生疏了。任何帮助将不胜感激!
【问题讨论】:
标签: mysql join subquery composite-key