这个数据库是一个图书借阅系统。如果一个学生拿了一本书,系统会接受该学生的学号,并给出该书的归还日期。这是我正在用的两张table
贷款表:
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。基本上我不知道如何创建这个子查询,我想知道是否有人可以帮助我,也解释它不只是给我看代码。
1条答案
按热度按时间p1tboqfb1#
你要找的是
HAVING
语法: