Bonjour,

j'ai 2 tables :
USL_user_license qui contient les propriétaires de licence :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE USL_user_license(
   US_ident INT UNSIGNED,
   US_ident_manager INT UNSIGNED NOT NULL,
   COU_ident INT UNSIGNED,
   LO_ident INT UNSIGNED,
   CO_ident INT UNSIGNED NOT NULL,
   PRIMARY KEY(US_ident),
   FOREIGN KEY(US_ident) REFERENCES US_user(US_ident),
   FOREIGN KEY(US_ident_manager) REFERENCES US_user(US_ident),
   FOREIGN KEY(COU_ident, LO_ident) REFERENCES LO_location(COU_ident, LO_ident),
   FOREIGN KEY(CO_ident) REFERENCES CO_company(CO_ident)
);

et une seconde table US_user qui contient tous les utilisateurs (donc les propriétaires de licence et leur manager) :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
CREATE TABLE US_user(
   US_ident INT UNSIGNED AUTO_INCREMENT,
   US_sesa INT,
   US_firstname VARCHAR(50),
   US_lastname VARCHAR(50),
   PRIMARY KEY(US_ident),
   UNIQUE(US_sesa)
);
La première table possède 2 clés étrangères vers la seconde ; l'une concerne la colonne US_ident (elle désigne un propriétaire de licence) et l'autre concerne la colonne US_ident_manager (elle désigne le manager d'un propriétaire de licence).

Mon souhait est de trouver la requête qui donnera nom et prénom du manager d'un propriétaire de licence, désigné par son identifiant (nommé code SESA).

J'ai fait cette requête :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT US.US_firstname, US.US_lastname FROM US_user US 
JOIN USL_user_license USL ON USL.US_ident_manager = US.US_ident
WHERE US.US_sesa=100008
mais elle ne retourne rien alors que l'utilisateur dont le SESA est 100008 existe dans la table US_user. Pourquoi ?