Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/08/2011, 12h01   #1
Invité de passage
 
Inscription : août 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 4
Points : 0
Points : 0
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 :
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
MarwenGafsi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 12h26   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 437
Points : 6 437
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 :
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
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 13h23   #3
Invité de passage
 
Inscription : août 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 4
Points : 0
Points : 0
Bonjour,
Ci-joint les tables de la vue
Images attachées
Type de fichier : jpg tables.JPG (42,4 Ko, 1 affichages)
MarwenGafsi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h56.


 
 
 
 
Partenaires

Hébergement Web