【发布时间】:2015-04-19 16:23:47
【问题描述】:
我有以下带有表的数据库,并且我确实尝试查询它们: 检索所有借出超过五本书的借款人的姓名、地址和借出的图书数量。 我已经创建了查询
select name, Address
from BORROWER
where BOOK_LOANS.BookId >= 5;
似乎我需要加入表格,我被困在这里,我可以寻求帮助吗?
CREATE TABLE BOOK (
BookId CHAR(20) NOT NULL,
Title VARCHAR(30) NOT NULL,
PublisherName VARCHAR(20),
PRIMARY KEY (BookId),
FOREIGN KEY (PublisherName) REFERENCES PUBLISHER (PublisherName)
);
CREATE TABLE BOOK_AUTHORS (
BookId CHAR(20) NOT NULL,
AuthorName VARCHAR(30) NOT NULL,
PRIMARY KEY (BookId, AuthorName),
FOREIGN KEY (BookId) REFERENCES BOOK (BookId)
ON DELETE CASCADE
);
// PublisherName was added, as it was referenced by another
// table but did not exist as an attribute.
CREATE TABLE PUBLISHER (
PublisherName VARCHAR(20) NOT NULL,
Address VARCHAR(40) NOT NULL,
Phone CHAR(12),
PRIMARY KEY (PublisherName)
);
CREATE TABLE BOOK_COPIES (
BookId CHAR(20) NOT NULL,
BranchId INTEGER NOT NULL,
No_Of_Copies INTEGER NOT NULL,
PRIMARY KEY (BookId, BranchId),
FOREIGN KEY (BookId) REFERENCES BOOK (BookId)
ON DELETE CASCADE,
FOREIGN KEY (BranchId) REFERENCES BRANCH (BranchId)
ON DELETE CASCADE
);
CREATE TABLE BORROWER (
CardNo INTEGER NOT NULL,
Name VARCHAR(30) NOT NULL,
Address VARCHAR(40) NOT NULL,
Phone CHAR(12),
PRIMARY KEY (CardNo)
);
CREATE TABLE BOOK_LOANS (
CardNo INTEGER NOT NULL,
BookId CHAR(20) NOT NULL,
BranchId INTEGER NOT NULL,
DateOut DATE NOT NULL,
DueDate DATE NOT NULL,
PRIMARY KEY (CardNo, BookId, BranchId),
FOREIGN KEY (CardNo) REFERENCES BORROWER (CardNo)
ON DELETE CASCADE,
FOREIGN KEY (BranchId) REFERENCES BRANCH (BranchId)
ON DELETE CASCADE,
FOREIGN KEY (BookId) REFERENCES BOOK (BookId)
ON DELETE SET NULL
);
CREATE TABLE BRANCH (
BranchId INTEGER NOT NULL,
BranchName VARCHAR(20) NOT NULL,
Address VARCHAR(40) NOT NULL,
PRIMARY KEY (BranchId)
);
【问题讨论】:
-
是的,您需要加入。幸运的是,它们有很好的文档记录。你试过什么?
-
您标记了 MySQL,但说的是 Oracle。你指的是哪一个?
-
MySQL 也是 Oracle。 ;-) 然而,这是您的第三个问题,需要进行一些认真的重新标记,并且没有显示出任何努力尝试自己解决问题。因此,我对你的问题投了反对票。请先搜索并尝试自己解决问题。如果您对实际尝试有兴趣,我们随时为您提供帮助。另外,也请努力解决您的问题。需要解决的是你的问题。
-
好吧,Oracle 拥有,但它的 SQL 与 Oracle 完全不同。所以我还是建议正确的标签。
-
@GolezTrol 我编辑了问题并删除了标签,以后我会更加小心。谢谢。