Requête SQL

amedbledar Messages postés 7 Statut Membre -  
amedbledar Messages postés 7 Statut Membre -
bonjour,
j'ai un exercice avec des requêtes et et je dois donner leurs résultats, mais je ne voie pas à quoi cela correspond:

voici les tables, il y en a 3:


les Requête sont les suivantes

Requête 1
SELECT nom
FROM PERSONNE
WHERE num_p IN (SELECT pe.num_p
FROM PERSONNE pe, POSSEDE po
WHERE po.immat IS NULL
AND pe.num_p = po.num_p);

Requête 2
SELECT nom
FROM PERSONNE
WHERE num_p IN (SELECT num_p
FROM POSSEDE
GROUP BY num_p
HAVING COUNT (ordre) = 1);

Requête 3
SELECT immat
FROM VHEICULE
where immat IN (SELECT po.immat
FROM POSSEDE po
GROUP BY po.immat
HAVING COUNT (po.num_p) >1;

merci d'avance pour votre aide

1 réponse

  1. DebutantSQL
     
    Bonjour amedbledar

    Je pense qu'il manque une colonne dans la "
    POSSEDE
    ".
    Dans votre cas, une personne ne pourra avoir qu'un seul véhicule si
    num_p 
    est pris comme clé primaire.

    Dans les requêtes 2 et 3 il y a un problème.
    Il y a un
    GROUP BY ...WHERE COUNT
    mais dans le
     SELECT 
    il n'y a pas de
    COUNT
    .
    Çà ne peut pas marcher.
    0
    1. Utilisateur anonyme
       
      Bonjour

      Dans votre cas, une personne ne pourra avoir qu'un seul véhicule si num_p est pris comme clé primaire. Mais personne n'a dit que num_p était une clé primaire de "possede". C'est toi qui imagines ça. Bien au contraire, les données montrent clairement que ce n'en est pas une.

      il y a un problème.
      Il y a un GROUP BY ...WHERE COUNT mais dans le SELECT il n'y a pas de COUNT

      Non, ce n'est pas un problème.
      0
    2. amedbledar Messages postés 7 Statut Membre > Utilisateur anonyme
       
      bonjour,

      num_p est bien une clé primaire dans POSSEDE c'est l'exercice qui est comme ça. ce n'est pas moi qui est fait les table elle m'ont étaient donner comme ça. et le but est de donner le résultat des requêtes

      voici le schéma de la base
      VEHICULE (immat, type, couleur)
      PERSONNE (num_p, nom, prenom)
      POSSEDE (num_p, immat, ordre)
      0
    3. Utilisateur anonyme > amedbledar Messages postés 7 Statut Membre
       
      num_p est bien une clé primaire dans POSSEDE
      Non. Une clé primaire est unique. Et dans les données, la valeur 1 apparaît plusieurs fois.
      Il est raisonnable de penser que le couple (num_p,ordre) constitue une clé primaire composite de POSSEDE, mais le champ num_p seul certainement pas.
      0
    4. amedbledar Messages postés 7 Statut Membre
       
      ok merci
      donc le schéma est faux ??
      0
    5. Utilisateur anonyme
       
      As-tu eu un cours sur les bases de données ? Que dit-il sur les clés primaires ?
      0