CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide requête SQL.

TrafalgarLaw
TrafalgarLaw
Niveau 13
27 mai 2012 à 19:20:03

Salut tout le monde. :hap:

J'ai 3 requêtes SQL que je n'arrive pas du tout à construire. Si quelqu'un pouvait m'aider, ça serait sympa. :ok:

Voilà la structure de la base :

•JOURNEE(nomconf, anneej, datej, lieuj, pdtjournee1, pdfjournee2, pdtcp1, pdtcp2, pdtco1, pdtco2)
Une journée est identifiée de manière unique par un nom (nomconf) et une année (anneej). Elle est caractérisée par une date (jour de début et jour de fin), un lieu et par un ensemble de personnes : deux présidents des journées, deux présidents du comité de programme et deux présidents du comité d'organisation;

•PUBLICATION(idpubli, nomconf, anneej, titrep, urlpubli, typepubli)
Une publication est identifiée de manière unique par un identifiant et a été faite lors d'une journée (nomconf, anneej clé étrangère sur JOURNEE). Elle est caractérisée par un titre, une url pointant sur le texte de la publication et un type.

•AUTEUR(prenomat, emailat, urlat)
Un auteur est identifié de manière unique par son nom-prénom et est caractérisé par un email et une url.

•PUBLIE(prenomat, idpubli, rang)
Une ligne dans cette relation signifie qu'un auteur (prenomat clé étrangère sur AUTEUR) a contribuée à une publication (idpubli clés étrangère sur PUBLICATION) en un rang donné (entier de 1 à n). Une publication peut avoir plusieurs auteurs et un auteur peut avoir plusieurs publications.

Questions :

1. Quels sont les auteurs (prenomat) qui ont co-écrit toutes les publications faites par 'Alain Casali' faites avant 2007 ?
•Ecrire cette requête en utilisant la fonction COUNT
•Ecrire cette requête en utilisant un double NOT EXISTS

2. Quels sont les auteurs (prenomat) ayant écrit au moins une publication dans chaque journée ?
•Ecrire cette requête en utilisant la fonction COUNT
•Ecrire cette requête en utilisant un double NOT EXISTS

3.Un auteur est considéré comme un co-auteur "favori" d'un autre auteur si celui-ci a participé à au moins deux publications en commun. Pour chaque auteur, donner son son nom-prénom ainsi que le nombre de fois qu'il a été co-auteur "favori".
•Ecrire cette requête en deux fois : la première requête définit une vue contenant l'information sur les acteurs "favoris"; la seconde utilise cette vue pour obtenir la réponse finale.
•Ecrire cette requête en utilisant deux requêtes imbriquées

Merci de votre aide. :ok:

j3r3mux
j3r3mux
Niveau 10
27 mai 2012 à 21:28:04

Je te propose un truc, t'écris tes requêtes et on te dit ce qui ne va pas.

TrafalgarLaw
TrafalgarLaw
Niveau 13
27 mai 2012 à 21:53:43

Salutj3r3mux, j'arrive à ça pour l'instant :( :

1.

SELECT t.prenomat
FROM publi t
Inner join publication on idpubli = idpubli
WHERE NOT EXISTS ( SELECT *
FROM publi u WHERE NOT EXISTS ( SELECT *
FROM publi v
WHERE v.prenomat=t.prenomat
AND v.idpubli=u.idpubli
)
where annej < 2007

2.
SELECT prenomat FROM publi t WHERE NOT EXISTS
( SELECT * FROM publication u WHERE NOT EXISTS
( SELECT * FROM publication v
WHERE v.idpubli = t.idpubli AND u.anneej = v.anneej
)
)

SELECT prenomat FROM publi t
Where (select count(*), anneej from publi inner join publication on idpubli = idpubli
Group by anneej) > 1

j3r3mux
j3r3mux
Niveau 10
28 mai 2012 à 00:32:11

Désolé, j'étais absent. J'y reviendrais demain déjà pour utiliser count (j'ai juste survolé les tables, faudra sûrement modifier mais l'idée est là ) :

...
GROUP BY prenomat
HAVING COUNT(*) = (SELECT COUNT(DISTINCT publication) FROM publication)
...

Je sais pas si t'as vu les divisions...J'ai des cours là dessus si t'as besoin d'aide :ok: (faudrait que je les retrouve déjà :o)) )

TrafalgarLaw
TrafalgarLaw
Niveau 13
28 mai 2012 à 21:42:34

Merci de ta réponse j3r3mux. :ok:

Pour le count en effet le 'count' dans le where n'est pas correct. :ok:

Par contre je comprends pas comment ta requête retourne les auteurs ayant écrit au moins une publication dans chaque journée :(

LitDeVoyage
LitDeVoyage
Niveau 5
01 juin 2012 à 15:38:24

Chaud... Alain Casali... Tu ne serai pas au département info de l'IUT d'Aix-e-Provence par hasard ? :hap:

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment