데이터베이스의 레코드와 관련하여 트랜잭션에 대해 보관하는 테이블에 대해 쿼리를 실행하려고합니다. 좀 더 구체적으로 말하면 우리가 "자산"을 "만료"할 때 주 테이블에서 상태가 만료되도록 변경하고 만료시기에 대한 기록을 기록합니다 (이것은 내 디자인이 아니 었습니다).트랜잭션 테이블에서 가장 최근의 레코드 얻기
문제는 최종 사용자가 프런트 엔드에 조급해하지 못하고 다른 테이블의 특정 레코드에 대해 만료 된 트랜잭션이 여러 번 끝나는 경우입니다. 다음과 같이
문제의 테이블입니다 : 내가 확인 m_id, a_ordinal 및 복합 키를 형성 date_expired 수있는에서
+---------------+-----------------------------+------+-----+-------------------+-------+
| 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, 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과 함께 일한 지 몇 년이되었고, 나는 녹슨했다. 어떤 도움을 주시면 감사하겠습니다 !!
AWESOME! 고마워, 며칠 동안 고생하고 있었고, 나는 매우 좌절하게되었다. 돌아가서 JOIN 유형을 더 명확하게 검토해야합니다. 저는 DB 클래스의 아무도 비즈니스처럼이 물건을 크랭크 할 수 있었지만 그 이후로는 다루지 않았고 모든 것을 잃어 버렸습니다. 나는 불만을 느낀다! 다시 한번 감사드립니다. – mattai