2016-08-25 91 views
0

我想写这些查询查询有关数据库管理系统

  • 显示谁从来没有借出的诗集学生的名字。
  • 显示借出5本以上书籍的学生的姓名。
  • 显示学生姓名,书名,发行日期以及所有预订书籍的作者姓名。

查询我写了那么远是不工作的第一项任务

SELECT 
    name  
FROM 
    students 
INNER JOIN issued ON students.rollno = issued.rollno 
GROUP BY 
    issued.rollno 
HAVING 
    COUNT(issued.rollno)> 2 
+0

请修改您的问题,包括在_text_格式表中的数据,并使其明确的阅读。 –

+3

请写下你的方法和你被卡住的地方......这是一个家庭作业吗? – Zeina

回答

0

给这些查询试试

select s.name from students s 
left join issued i on (s.rollno = i.rollno) 
left join bookcopy bc on (i.copyid = bc.copyid) 
left join books b on (bc.bookid = b.bookid) 
left join category c on (b.catid = c.catid and c.catname = 'Poetry') 
where c.catid is null 

select s.name, count(*) as from students s 
left join issued i on (s.rollno = i.rollno) 
group by s.name 
having count(*) > 5 

select s.name, b.title, a.authorname, i.issuedate from students s 
left join issued i on (s.rollno = i.rollno) 
left join bookcopy bc on (i.copyid = bc.copyid) 
left join books b on (bc.bookid = b.bookid) 
left join author a on (b.authorid = a.authorid); 
+0

我有一种奇怪的感觉,我只是做了你的功课,但如果你发现sql很难,我希望你学习这些查询,并试图理解它们,这样你就可以自己写下:) – Moptan

+0

select name,count(*)from students s left join i on(s.rollno = i.rollno) group by s.name have count(*)> 5这一个只能解决一个问题,谢谢 – router

+0

我很高兴我可以帮助:)确保,我可以试一试 – Moptan