Bonjour,
Je suis débutant et j'essaye de construire une requete, mais je bloque à un certain point je n'arrive pas à mixer une requete externe et interne (???).
Voila la problématique j'ai une table sur laquelle je base une requete externe et qui contient une multitude de champ pouvant être Null jusque la c'est bon je pense. Le problème se pose lorsque je veux associé les valeur d'un champ de ma jointure externe via une table de liaison.
Avec la requete cela sera plus claire :
la table computers contient l'id d'un utilisateur. pour récupéré le nom des groupes associé à l'utilisateur je passe par une table d'association user_group qui contient les clé étrangère des table user et group.
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
17
18
19
20 select glpi_computers.name, glpi_users.name, glpi_groups.name, glpi_computers.state, glpi_dropdown_state.name , glpi_registry.computer_id, glpi_registry.registry_value from glpi_computers,glpi_registry LEFT OUTER JOIN glpi_users ON glpi_computers.FK_users = glpi_users.ID LEFT OUTER JOIN glpi_dropdown_state ON glpi_dropdown_state.ID = glpi_computers.state LEFT OUTER JOIN glpi_groups ON glpi_computers.FK_users = glpi_users_groups.FK_users JOIN glpi_users_groups ON glpi_users_groups.FK_groups = glpi_groups.ID WHERE glpi_registry.computer_id=glpi_computers.ID and glpi_registry.registry_value like 'CTO%'
Mon problème principal concerne la partie en gras. si je la laisse tel quel la requete s'execute pour tout ordinateur contenant un utilisateur mais je perd les valeurs Null. J'ai essayé en en remplaçant
JOIN glpi_users_groups
ON glpi_users_groups.FK_groups = glpi_groups.ID
par
LEFT OUTER JOIN glpi_users_groups
ON glpi_users_groups.FK_groups = glpi_groups.ID
Mais j'ai un message d'érreur m'indiquant une CROSS DEPENDENCY.
Voila je ne suis pas sur de trouver une solution par cette voila. Toiute aide est la bienvenue.
N'hésitez pas à me demadner si je n'ai pas été clair
Merci
Partager