表格描述:
BRANCH(Branchid,分支名称,HOD) 学生(USN,姓名,地址,Branchid,SEM) BOOK(BOOKID,BOOKNAME,AUTHORID,出版社,Branchid) 作者(的AuthorID,AUTHORNAME,国籍,年龄) BORROW(USN,BOOKID,Borrowed_Date)
Q1)显示借用多个作者书籍的学生详细信息。 Q2)列出借用书籍的学生的详细信息 出版商。
答案 0 :(得分:0)
尝试这个:
SELECT
S.NAME AS "STUDENT NAME"
,S.ADDRESS AS "STUDENT ADDRESS"
,BW.BORROWED_DATE AS "DATE BORROWED"
,BR.BRANCHNAME AS "BRANCE NAME"
,BK.BOOKNAME AS "NAME OF BOOK"
,BK.PUBLISHER AS "BOOK PUBLISHER"
,A.AUTHORNAME AS "NAME OF AUTHOR"
,A.COUNTRY AS "COUNTRY OF AUTHOR"
,A.AGE AS "AGE OF AUTHOR"
---
FROM
STUDENT S
---
JOIN BORROW BW
ON S.USN = BW.USN
---
JOIN BOOK BK
ON BW.BOOKID = BK.BOOKID
--
JOIN BRANCH BR
ON BR.BRANCHID = BK.BRANCHID
---
JOIN AUTHOR A
ON BK.AUTHORID = A.AUTHORID
--
--
JOIN (SELECT P1
FROM (
SELECT
SS_S.USN "P1"
,SS_A.Authorid "P2"
FROM
STUDENT SS_S
JOIN BORROW SS_BW
ON SS_S.USN = SS_BW.USN
JOIN BOOK SS_BK
ON SS_BW.BOOKID = SS_BK.BOOKID
JOIN AUTHOR SS_A
ON SS_BK.AUTHORID = SS_A.AUTHORID
GROUP BY
SS_S.USN
,SS_A.Authorid
HAVING COUNT(SS_A.Authorid) > 1
)
) SUB_Q
ON S.USN = SUB_Q.P1
ORDER BY 1, 3
问题编号2很简单
SELECT
S.NAME AS "STUDENT NAME"
,S.ADDRESS AS "STUDENT ADDRESS"
,BW.BORROWED_DATE AS "DATE BORROWED"
,BR.BRANCHNAME AS "BRANCE NAME"
,BK.BOOKNAME AS "NAME OF BOOK"
,BK.PUBLISHER AS "BOOK PUBLISHER"
,A.AUTHORNAME AS "NAME OF AUTHOR"
,A.COUNTRY AS "COUNTRY OF AUTHOR"
,A.AGE AS "AGE OF AUTHOR"
---
FROM
STUDENT S
---
JOIN BORROW BW
ON S.USN = BW.USN
---
JOIN BOOK BK
ON BW.BOOKID = BK.BOOKID
--
JOIN BRANCH BR
ON BR.BRANCHID = BK.BRANCHID
---
JOIN AUTHOR A
ON BK.AUTHORID = A.AUTHORID
--
WHERE
BK.PUBLISHER = ''