다음 표를 만들고 몇 개의 값을 삽입했습니다.제약 문제
create table books
(bookid integer primary key,
booktitle varchar(20),
year integer,
publisherid integer foreign key references publisher(publisherid),
price integer,
number integer)
create table publisher
(publisherid integer primary key,
publishername varchar(20))
create table author
(authorid integer primary key,
authorname varchar(20))
create table bookauthor
(bookid integer foreign key references books(bookid),
authorid integer references author(authorid),
earnings integer)
create table bookreference
(bookid integer foreign key references books(bookid),
referencebook varchar(20),
times integer)
create table reviewer
(reviewerid integer primary key,
reviewername varchar(20))
create table bookreview
(bookid integer foreign key references books(bookid),
reviewerid integer foreign key references reviewer(reviewerid),
score integer)
는 지금, 나는 2000 년
이 모든 책이 모두 '잠머 Tulpule'와 '인 Hemant Mahta'
그래서 2003 년에 출판 검토 찾기 SQL Server의 다음 쿼리를 해결하려면 다음 쿼리를 실행했습니다.
SELECT B.booktitle
FROM bookreview BR
INNER JOIN books B ON BR.bookid = B.bookid
INNER JOIN reviewer R ON R.reviewerid = BR.reviewerid
WHERE
B.year=2003
AND R.reviewername IN('Sammer Tulphule','Hemant Mahta')
그러나이 책에서 나는 2003 년에 출판하고 리뷰어 중 한 명이 리뷰 한 모든 책의 이름을 얻었다. 사실 저는 2003 년에 출판 된 모든 책의 이름을 원하고 둘 중 하나만 검토했습니다.
그럼 어떻게 쿼리를 수정할 수 있습니까?
감사합니다. & 안부, 푸우 자.
bookreview 테이블에 PK가 없습니다. 리뷰어가 같은 책을 두 번 이상 검토 할 수 있습니까? –