IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

MyView doesn't have a primary key


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Par défaut MyView doesn't have a primary key
    Salut tout le monde,
    J'ai créé une vue par la jointure de 3 tables comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select `ientite_salarie`.`matricule` AS `matricule`, `ientite_salarie`.`id_ientite_salarie` AS `id_ientite_salarie`, `ientite_salarie`.`id_salarie` AS `id_salarie`, `isalarie`.`civilite` AS `civilite`, `ientite_salarie`.`nom` AS `nom`, `isalarie`.`prenom` AS `prenom`, `isalarie`.`num_securite_s` AS `num_sec_soc`, `isalarie`.`adresse` AS `adresse`, `isalarie`.`code_postal` AS `code_postal`, `isalarie`.`complement` AS `complement`, `isalarie`.`ville` AS `ville`, sum(`ientite_salarie`. `prelevement`) AS `montant_prelevement`, `interessement`.`id_interessement` AS `id_interessement`, ((sum(`ientite_salarie`.`montant_interessement`) - sum(`ientite_salarie`.`prelevement`)) - sum(`ientite_salarie`.`montant_acompte`)) AS `montant_net`, `ientite_salarie`.`ayant_droit` AS `ayant_droit`, sum(`ientite_salarie`.`montant_interessement`) AS `montant_interessement`, `isalarie`.`designation_entite_actuelle` AS `entite_actuelle`, `isalarie`.`date_depart` AS `date_sortie` 
    from ((`ientite_salarie` join `isalarie`) join `interessement`) 
    where ((`interessement`.`id_interessement` = `ientite_salarie`.`id_interessement`) 
    and (`isalarie`.`id_salarie` = `ientite_salarie`.`id_salarie`) 
    and (`ientite_salarie`.`ayant_droit` = 1)) 
    group by `ientite_salarie`.`id_salarie`
    En ouvrant la vue, cette information m'apparaît 'MyView doesn't have a primary key
    J'ai pas compris comment avoir un clé primaire d'une vue ? Je sais que c'est pas important pour une vue de l'avoir. (J'ai fait le même script pour d'autres views et çà n'apparait pas, cette information)
    merci de m'aider

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Voici la requête débarrassée des ` et avec des alias, ainsi que des jointures normalisées...
    Ça permet quand même d'y voir un peu plus clair...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT i_s.matricule AS matricule, i_s.id_ientite_salarie AS id_ientite_salarie, i_s.id_salarie AS id_salarie
    , s.civilite AS civilite
    , i_s.nom AS nom
    , s.prenom AS prenom, s.num_securite_s AS num_sec_soc, s.adresse AS adresse, s.code_postal AS code_postal, s.complement AS complement, s.ville AS ville
    , SUM(i_s. prelevement) AS montant_prelevement
    , i.id_interessement AS id_interessement
    , SUM(i_s.montant_interessement) - SUM(i_s.prelevement)) - SUM(i_s.montant_acompte) AS montant_net
    , i_s.ayant_droit AS ayant_droit
    , SUM(i_s.montant_interessement) AS montant_interessement
    , s.designation_entite_actuelle AS entite_actuelle
    , s.date_depart AS date_sortie 
    FROM ientite_salarie i_s 
    JOIN isalarie s ON i_s.id_salarie = s.id_salarie
    JOIN interessement i ON i_s.id_interessement = i.id_interessement
    WHERE i_s.ayant_droit = 1
    GROUP BY i_s.id_salarie
    Maintenant, peut-on voir le modèle de données (schéma des tables) ?
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Inscrit en
    Août 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2011
    Messages : 13
    Par défaut
    Bonjour,
    Ci-joint les tables de la vue
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 9
    Dernier message: 31/12/2010, 12h08
  2. Réponses: 2
    Dernier message: 18/02/2010, 18h08
  3. DROP PRIMARY KEY
    Par popopopo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/08/2005, 11h11
  4. [PowerBuilder] Datawindow doesn't have UPDATE...
    Par marie mouse dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 23/05/2005, 11h38
  5. BDD, r-a-z index et indice primary key ?
    Par lord_paco dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 11/07/2003, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo