Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1083 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Utiliser le résultat d'une requête dans cette même requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utiliser le résultat d'une requête dans cette même requête

n°2280113
lofo7
Posté le 24-04-2016 à 22:00:55  profilanswer
 

Bonjour,
j'ai une requête avec deux jointures. L'une de ces jointures doit pouvoir se faire sur une table dont je ne connais pas le nom à l'avance, le nom de cette table étant dans un champ d'un autre table jointe dans la même requête. Voici un exemple pour mieux comprendre.
 

Code :
  1. SELECT m.nametable, q.*
  2. FROM images AS i
  3. INNER JOIN metas AS m ON i.id = m.idref
  4. INNER JOIN "le contenu du champ m.nametable qui est le nom d'une table" AS q ON i.id = q.idref
  5. WHERE i.id = 1


 
J'ai ma table images à laquelle je joins ma table metas. Dans cette table metas, il y a un champ nommé nametable qui contient le nom de la table sur laquelle je souhaite faire une deuxième jointure avec mon deuxième INNER JOIN.
 
Est-ce possible de faire une telle requête, utiliser le contenu d'un champ en cours de récupération et l'intégrer à la requête ?
 
Merci !
Maxime

mood
Publicité
Posté le 24-04-2016 à 22:00:55  profilanswer
 

n°2280120
antac
..
Posté le 24-04-2016 à 23:27:06  profilanswer
 

Directement, non.
 
Cependant tu peux le faire avec une procédure stockée. Tu utilises quel sgbd ? Tu peux utiliser un langage de programmation (php. Asp, java...?)

n°2280122
lofo7
Posté le 24-04-2016 à 23:35:13  profilanswer
 

J'utilise PostgreSQL avec PHP.
Je vais me renseigner à propos des procédures stockées. C'est quelque chose que je ne connais pas.
Merci pour cette première piste de recherche.

n°2280129
antac
..
Posté le 25-04-2016 à 08:58:49  profilanswer
 

Ca fait trop longtemps que je n'ai plus travaillé avec PostegreSQL.
Le plus simple pour toi c'est de faire deux requêtes en PHP. La première qui récupère le nom de la table et qui l'enregistre dans une variable PHP, et la deuxième qui fait ta requête finale en construisant ta requête avec la variable.

n°2280180
lofo7
Posté le 25-04-2016 à 23:35:38  profilanswer
 

Je regarde un peu les procédures stockées. J'ai l'impression que ce sont des sortes de fonctions SQL enregistrées dans la base de données, qu'on appelle quand on veut et où on veut.
Mais je vois pas comment je pourrais utiliser ces procédures dans mon cas. Je vais faire deux requêtes, ça sera bien plus simple.

n°2280182
antac
..
Posté le 26-04-2016 à 08:59:39  profilanswer
 

Une procédure stockée permet de réaliser un ensemble d'opérations, y compris une succession de requêtes. Ce qui fait que côté PHP tu ne fera qu'un seul appel et c'est ton SGBD qui se chargera du boulot de calcul.
Une procédure stockée renvoie un ou plusieurs résultats (resultset)  
Une fonction stockée renvoie une valeur


Message édité par antac le 26-04-2016 à 09:00:41

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Utiliser le résultat d'une requête dans cette même requête

 

Sujets relatifs
Mettre le résultat d'un ping dans un logCritère requete sous vb6
Critère requete sous vb6.0[SQL/SAS] Requête qui ne fonctionne pas
Requête possible?Requête SQL avec liaison multi-tables
[Résolu][GTK]Utiliser la fonction Get_textPerformance MongoDB vs MySQL, resultat étonnant
[PHP]Utiliser le resultat d'un DATE_FORMAT de requete mysql sous dream[PHP] Comment utiliser le résultat d'une requete sans recharger
Plus de sujets relatifs à : Utiliser le résultat d'une requête dans cette même requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR