1

我的数据库类有一个项目,可以为一组库创建一个数据库。我正在使用 MySQL 5.2。我必须编写一个查询来查找保存每本书副本的两个图书馆。这些是创建表语句

Create table books(  
    booknum VARCHAR (10),  
    btitle VARCHAR (),  
    bpages SMALLINT,  
    bcdate DATE,  
    primary key (booknum))  

Create table copies(  
    cnum VARCHAR(12),  
    cprice DECIMAL (7,2),  
   cpurdate DATE,  
    booknum VARCHAR(10),  
    primary key (cnum),  
    foreign key (booknum)  
    references book(booknum)) 

Create table library(  
    libnum  VARCHAR(7),  
    libname VARCHAR (40),  
    streetNumber    VARCHAR (8),  
    streetName VARCHAR (20),  
    city VARCHAR (20),  
    state VARCHAR (2),  
    zipcode VARCHAR (5),  
    primary key (libnum))  

我相信我需要一个类似的东西

SELECT libname FROM libraries WHERE  NOT EXISTS
(SELECT * FROM copies C, books B WHERE C.booknum=B.booknum)

但这不是吗?

4

2 回答 2

0

您的数据库设计不完整。您需要添加另一个表来定义副本和库之间的多对多关系。

于 2013-03-14T16:59:50.247 回答
0

通过将库中的外键添加到副本表来更新表后...

SELECT b.btitle, l.libname from copies c left join books b on b.booknum = c.booknum
    left join l.libnum = c.libnum
于 2013-03-14T22:15:54.060 回答