질문에서 요구하는 최종 결과는 이렇습니다
아주 간단하지 않나요?
그런데 데이터베이스는 이렇습니다
갱신 작업은 무시하고 도서 대출 및 반납에만 집중하세요.
즉, 같은 테이블, 같은 책을 맡기고 빌리고 반납할 수 있고, 같은 책을 여러 번 빌리거나 반납할 수도 있습니다.
다른 속성은 이야기하기 쉽지만 더 문제가 되는 것은 동일한 책의 경우 대출 작업 직후의 반환 작업이 반환 시간입니다.
해결책은 다음과 같습니다.
대출 작업을 테이블 A로, 반환 작업을 테이블 B로 기록합니다. 테이블 A에는 22개의 행이 있고 테이블 B에는 19개의 행이 있습니다.
연결 조건은 숫자여야 합니다. 도서 컬렉션과 독자 ID를 연결하면 58줄이 연결됩니다. 데이터에 같은 책 제목에 대한 숫자가 여러 개 있어서 책 제목을 삭제했습니다. 연결 결과는 이렇습니다
위의 기록 상자를 액자에 넣으면 문제가 있는 것으로 보입니다! 상자 다이어그램은 각 도서 반납 기록과 연결된 동일한 도서 대출 기록을 보여줍니다. 이 사람에게 같은 책을 6번 빌려달라고 부탁하고 6번의 인연을 맺었다는 기록을 보면 알 수 있습니다!
다음 규칙은 올바른 결과를 쿼리하는 데 도움이 될 수 있습니다
1) 동일한 대여 및 반납 작업 그룹에서 대여 작업은 반납 작업 이전에 이루어져야 합니다.
2) 대여 작업 시간 > 반납 작업이 있는 레코드를 제외한 후 시간, 가장 빠른 책의 반납 시간은 이 사람입니다. 최종 결과는 다음과 같습니다. 최종 SQL 코드는 다음과 같습니다. 물론 책 시간은 NULL입니다. 이런 방식으로 다른 하위 쿼리, 공용체 및 페이징은 더 이상 문제가 되지 않습니다.
위 내용은 데이터베이스에 대한 공동 쿼리의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!