대출, 예약 및 도서 테이블이 3 개 있습니다. books 테이블에는 "noOfCopies"속성이 있으며 해당 책의 총 대출 및 예약 수는 해당 수치를 초과 할 수 없습니다.도서를 사용할 수있는 가장 빠른 예약 표시
예약 테이블에는 예약 된 시간 소인 "시간 소인"열이 있습니다. 아이디어는 책이 반환 될 때, 가장 이른 예약은 책을 다음에 얻는다이다.
다음은 내가 도움이 필요한 것입니다. 각 책에 대한 모든 가장 초기 예약이 표시되지만 해당 책의 사용 가능한 위치 만 표시하는 SQL보기를 작성해야합니다.
아무에게도이 SQL을 줄 수 있습니까? 미리 감사드립니다.
내가 이미 가지고있는 SQL은 다음과 같습니다. 책을 사용할 수있는 모든 예약을 보여 주었고 가장 초기에 표시하는 방법을 알아 내려고했습니다.하지만 그다지 빠르지는 않았습니다. 이 사실은 어쨌든 작동하지 않습니다 : 이미 채워진 예약을 제외하거나 대출은 이미이 당신을 위해 무엇을해야 ... 반환하는 방법에 대한 질문에 넣어 코멘트를 제외하고
CREATE VIEW `view_bookLoans` AS
SELECT count(l.`id`) as loanCount, l.`bookISBN`,b.`noOfCopies` FROM
loans l INNER JOIN books b
ON l.`bookISBN` = b.`ISBN`
GROUP BY l.`bookISBN`;
CREATE VIEW `view_reservationList` AS
SELECT
r.`timestamp`,
b.`title` as `bookTitle`,
r.`readerID`,
bl.`loanCount`
FROM
`reservations` r INNER JOIN `books` b
ON r.`bookISBN` = b.`ISBN`
LEFT JOIN
view_bookLoans bl
ON bl.`bookISBN` = b.`ISBN`
WHERE
(b.`noOfCopies` - bl.`loanCount`) > 0;
이것은 MySQL입니다. (다른 어떤 것도'GROUP BY'에'SELECT' cols를 허용하지 않습니다.) –
예 MySQL, 죄송합니다 – Raiden616
대출을 끝내고 다음 사람에게 주어 졌을 때 대출 및 예약의 기록 상태는 어떻게됩니까? . 완료했다고 말하는 깃발이 있습니까? 예약 테이블 (또는 대출 테이블)에서 제거됩니까? – DRapp