このデータベースは図書貸出システム用です。学生が本のコピーを取ると、システムはそこで学生番号を受け入れ、本の返却日を与えます。これらは私が使用している2つのテーブルです
ローン表:
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 を使い始めたばかりなので、ほとんど知らないサブクエリを使用する必要があります。基本的に、このサブクエリを作成する方法がわからないので、コードを表示するだけでなく、誰かが私を助けて説明してくれるかどうか疑問に思っています。