Эта база данных предназначена для системы книжных займов.Где, если студент берет копию книги, система принимает там номер студента и дает им дату возвращения для книги.Вот две таблицы, которые я использую
таблица займов:
CREATE TABLE loan (
`code` INT NOT NULL,
`no` INT NOT NULL,
taken DATE NOT NULL,
due DATE NOT NULL,
`return` DATE NULL,
CONSTRAINT pri_loan PRIMARY KEY (taken),
CONSTRAINT for_loan
FOREIGN KEY (`code`) REFERENCES copy (`code`),
FOREIGN KEY (`no`) REFERENCES student (`no`));
таблица учеников:
CREATE TABLE student (
`no` INT NOT NULL,
`name` VARCHAR(30) NOT NULL,
school CHAR(3) NOT NULL,
embargo BIT NOT NULL,
CONSTRAINT pri_student PRIMARY KEY (`no`));
Во-первых, я рассчитываю рассчитать самую последнюю дату оплаты длякопия книги (она выведет код для этой книги и когда наступит последний срок для этой книги), что я и сделал, используя этот код, который отлично работал
SELECT `code`, max(due)
FROM loan
GROUP BY `code`
Теперь я хочу изменить этот запростак что он выбирает самые поздние сроки исполнения для каждой книги, но отображает только номер студента (no
), который имеет книгу.Для этого мне нужно использовать подзапрос, о котором я очень мало знаю, так как я только начинаю использовать MySQL.По сути, я не уверен, как создать этот подзапрос, и мне интересно, может ли кто-нибудь помочь мне, а также объяснить, а не просто показать мне код.