2016-08-25 1 views
0

je veux écrire ces requêtesrequêtes sur le système de gestion de base de données

  • afficher le nom des élèves qui ne PRÊTÉE livres de poésie.
  • Afficher le nom de l'étudiant qui a prêté plus de 5 livres.
  • Afficher le nom de l'étudiant, le titre du livre, la date et le nom de l'auteur de tous les livres publiés.

Interrogation je l'ai écrit à ce jour ne fonctionne pas pour première tâche

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

S'il vous plaît modifier votre question d'inclure les données de table dans _text_ format et de le rendre clair pour la lecture. –

+3

s'il vous plaît écrivez vos approches et où vous êtes coincé ... est-ce un devoir? – Zeina

Répondre

0

Donner à ces requêtes un essai

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

J'ai un sentiment étrange que je viens de faire vos devoirs, mais si vous trouvez SQL difficile, j'espère que vous étudier ces questions et essayer de les comprendre afin que vous puissiez les écrire :) – Moptan

+0

Sélectionnez le nom, compte (*) des étudiants s left join émis i on (s.rollno = i.rollno) groupe par s.name ayant compte (*)> 5 celui-ci ne fonctionne qu'une seule question résolu merci – router

+0

Je suis content que je puisse être utile :) Sure , Je peux essayer – Moptan