Soit la base de donnée suivante :
SELECT Nomresto FROM RESTO WHERE NbEtoile > 2 ORDER BY Nomresto ;
12. Nom et adresse des restaurants qui ne proposent pas le menu 10. (2 pts)
SELECT Nomresto, Adresse FROM RESTO WHERE Idresto NOT IN (SELECT Idresto FROM MENURESTO WHERE Idmenu=10) ;
13. Donnez la li e des restaurants qui ne vendent pas de boissons alcoolisées. (2 pts)
SELECT Nomresto, Adresse FROM RESTO WHERE Idresto NOT IN (SELECT Idresto FROM BOISSON B, BOISSONSERVIE BS WHERE B.Idboisson=BS.Idboisson AND DegreeAlcool > 0) ;
14. Nombre de menus par restaurant par ordre croissant du nombre de menu. (2 pts)
SELECT Nomresto, COUNT(Idmenu) as Nombre FROM RESTO R, MENURESTO M WHERE R.Idresto = M .Idresto GROUP BY Nomresto ORDER BY Nombre ;
SELECT Nomresto, Nomchef, NbEtoil MIN(prix), AVG(PRIX), MAX(PRIX) FROM RESTO R, MENURESTO M WHERE R.Idresto=M .Idresto GROUP BY Nomresto, Nomchef, NBEtoil
16. Nom du restaurant qui propose le menu le plus cher. (2 pts)
SELECT Nomresto FROM RESTO R, M ENURESTO M WHERE R.Idresto = M .Idresto AND Prix = (SELECT MAX(Prix) FROM MENURESTO);
17. Liste des boissons en ‘demi-bouteille proposées par le restaurant 1. (2 pts)
SELECT Nomboisson FROM CONTENANT C, BOISSON B, BOISSONSERVIE BS WHERE C.Idcontenant=BS.Idcontenant AND BS.Idboisson=B.Idboisson AND Idresto=1 AND Nomcontenant="demi-bouteille" ;
18. Nom des restaurants qui proposent ”foie gras poêlé‘ en entrée. (2 pts)
SELECT DISTINCT Nomresto FROM RESTO R, MENURESTO M R, MENU M WHERE R.Idresto = M R.Idresto AND M R.Idmenu=M .Idmenu AND Entree="foie gras poëlé";
19. Donnez la li e des restaurants (nom, adresse, téléphone) qui proposent un plat à base de ”canard‘. (2 pts)
SELECT Nomresto, Adresse, Telephone FROM RESTO R, MENURESTO M R, MENU M WHERE R.Idresto = M R.Idresto AND M R.Idmenu = M .Idmenu AND Plat LIKE "%canard%" ;
SELECT RR.Nomresto, RR.Adresse, RR.Telephone FROM RESTO RM , RESTO RR WHERE RM .IDresto = RR.Idresto AND RM .NbEtoile = RR.NbEtoile AND RM .Nomchef = "Dugros" AND RR.Nomchef <> "Dugros";
Autre solution :
SELECT Nomresto, Adresse, Telephone FROM RESTO WHERE NbEtoile = (SELECT NbEtoile FROM RESTO WHERE Nomchef = "Dugros") AND Nomchef <> "Dugros";