Syntaxe d'un requete SQL
Résolu
Nina
-
Nina -
Nina -
Bonjour à tous,
Voila, je suis en train de coder une page en php, j'ai des requêtes sql à effectuer, j'ai crée ma requête, elle me retourne une table vide, j'ai essayé dans phpmyadmin, j'ai exécuté la requête, rien ne s'affiche, alors qu'en théorie il devrait y avoir au moins un enregistrement.
J'ai vérifié le nom de mes tables, ils sont correctement écrits.
SELECT 'glpi_groups.name', 'glpi_cartridges.name'
FROM glpi_groups INNER JOIN glpi_groups_users
ON 'glpi_groups.id' = 'glpi_groups_users.groups_id'
INNER JOIN glpi_users
ON 'glpi_groups_users.users_id'='glpi_users.id'
INNER JOIN glpi_printers
ON 'glpi_users.id' = 'glpi_printers.users_id'
INNER JOIN glpi_cartridges
ON 'glpi_printers.id' = 'glpi_cartridges.printers_id';
Bonne journée à vous,
Dans l'attente de vous lire,
Cordialement,
Nina
Voila, je suis en train de coder une page en php, j'ai des requêtes sql à effectuer, j'ai crée ma requête, elle me retourne une table vide, j'ai essayé dans phpmyadmin, j'ai exécuté la requête, rien ne s'affiche, alors qu'en théorie il devrait y avoir au moins un enregistrement.
J'ai vérifié le nom de mes tables, ils sont correctement écrits.
SELECT 'glpi_groups.name', 'glpi_cartridges.name'
FROM glpi_groups INNER JOIN glpi_groups_users
ON 'glpi_groups.id' = 'glpi_groups_users.groups_id'
INNER JOIN glpi_users
ON 'glpi_groups_users.users_id'='glpi_users.id'
INNER JOIN glpi_printers
ON 'glpi_users.id' = 'glpi_printers.users_id'
INNER JOIN glpi_cartridges
ON 'glpi_printers.id' = 'glpi_cartridges.printers_id';
Bonne journée à vous,
Dans l'attente de vous lire,
Cordialement,
Nina
A voir également:
- Syntaxe d'un requete SQL
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Trouver erreur de syntaxe fichier txt pix ✓ - Forum Programmation
- Sql lister les tables ✓ - Forum Programmation
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
3 réponses
En fait, quand tu construis ta requête, il te faut considérer le cas où :
- un groupe n'a pas forcément d'utilisateurs
- un utilisateur n'a pas forcément d'imprimante
- une imprimante n'a pas forcément de cartouche
au lieu des inner join, remplace déjà par des LEFT OUTER JOIN ON :
avec cette imprimante, tu devrais récupérer tous les enregistrements. Tiens moi au courant des résultats, on verra après quoi faire :)
- un groupe n'a pas forcément d'utilisateurs
- un utilisateur n'a pas forcément d'imprimante
- une imprimante n'a pas forcément de cartouche
au lieu des inner join, remplace déjà par des LEFT OUTER JOIN ON :
SELECT 'glpi_groups.name', 'glpi_cartridges.name' FROM glpi_groups LEFT OUTER JOIN glpi_groups_users ON 'glpi_groups.id' = 'glpi_groups_users.groups_id' LEFT OUTER JOIN glpi_users ON 'glpi_groups_users.users_id'='glpi_users.id' LEFT OUTER JOIN glpi_printers ON 'glpi_users.id' = 'glpi_printers.users_id' LEFT OUTER JOIN glpi_cartridges ON 'glpi_printers.id' = 'glpi_cartridges.printers_id';
avec cette imprimante, tu devrais récupérer tous les enregistrements. Tiens moi au courant des résultats, on verra après quoi faire :)
La requête s'est exécutée, j'ai compris la différence entre une jointure naturelle et jointure externe, mais ça ne m'affiche pas des enregistrement, j'ai un tableau de réponses comme ça :
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name
glpi_groups.name glpi_cartridges.name