Я пытаюсь выполнить запрос к таблице, которую мы храним для транзакций, касающихся аспектов записей нашей базы данных.Чтобы быть более конкретным, когда мы «истекаем» «актив» (как мы его называем), мы меняем его состояние на истекшее в основной таблице, а затем записываем запись того, когда он истек в другой (это не было моим дизайном)).
Проблема в том, что иногда конечный пользователь теряет терпение по отношению к внешнему интерфейсу, и в результате мы получаем несколько транзакций с истекшим сроком действия для определенной записи из другой таблицы.
Соответствующая таблицавыглядит следующим образом:
+---------------+-----------------------------+------+-----+-------------------+-------+
| 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.
Я знаю, что это включает подзапрос с объединением (или, возможно, нет?), Но этоПрошло 5 лет с тех пор, как я работал с MySQL, и я очень ржавый.Любая помощь будет оценена !!