2017-04-14 264 views
-2

5.Consider以下库架构数据库关系代数,SQL查询

Books (book_no,title,authors,publisher) 
Borrower(borrower_id, name, DOB, job) 
Borrowed(borrower_id,book_no,date) 

写关系代数

  • 一个下列查询。查找借用“Wiley”发布的3本以上书籍的借款人的姓名和借阅人ID
  • b。查找借用“wiley”
  • 发布的任何书的借用人的姓名c。找到每个借款人借入的书籍的平均数量。
+3

你到目前为止尝试过什么? – Rams

+3

你有什么问题?你到目前为止尝试了什么? –

+0

a。你需要加入表格并按照操作进行分组,并给出条件Wiley,b。通过加入所需的表格简单地给出条件,c。与'a'相同,但不需要条件,只需要计数 – Rams

回答

0

按你的问题,SQL查询是这样

问题1

select B.borrower_id, B.name 
    from Borrower as B, Borrowed as Bw, Books as Bk 
where B.borrower_id = Bw.borrower_id 
    and Bw.book_no = Bk.book_no 
    and Bk.publisher = 'Wiley' 
group by B.borrower_id, B.name 
having count(Bw.borrower_id) > 3 

问题2

select B.name 
    from Borrower as B, Borrowed as Bw, Books as Bk 
where B.borrower_id = Bw.borrower_id 
    and Bw.book_no = Bk.book_no 
    and Bk.publisher = 'Wiley' 
    group by B.name 

问题3

select B.borrower_id, B.name, count(Bw.borrower_id) as cnt 
    from Borrower as B, Borrowed as Bw, Books as Bk 
where B.borrower_id = Bw.borrower_id 
    and Bw.book_no = Bk.book_no 
group by B.borrower_id, B.name 
+2

对不起,这不是关系代数... –

+0

@GiorgosAltanis更新请检查 – ITSGuru

+0

这仍然是SQL&没有任何常见的关系代数变体。 – philipxy