Appel du resultat d'une requete dans une autre requete

Signaler
Messages postés
3
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 décembre 2005
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Salut à toutes et à tous,

Je cherche à savoir comment faire une requete mysql qui prend en compte le resultat d'une autre requete...
Autrement dis, je veux créer une requete qui en appel une autre et qui se sert de son resultat...

Donc:
Requete 1 : formulation de ma requete... + appel d'une autre requete (requete 2) pour (par ex) une comparaison.....
Et ce, donc, sans faire un appel antérieur ni posterieur à la requete 2....

Je ne sais pas si je suis bien clair.....Mais bon, verrai bien !! ;)....


||-------------------------- p_i_x_l ------------------------------hé hé !-------------------------||

5 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
salut



on appelle ça une jointure de requette, ou une requette double (selon les cas)

t'as des jointures internes et des jointures externes...



mais explique mieux car la, c'est pas très claire....

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
Salut

a mon avis regarde plutot sur le site http://www.sqlfr.com/ ....

En utilisant un WHERE .... IN ou un LEFT JOIN ca doit etre possible ...

a++
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
IN

WHERE

LEFT JOIN

RIGHT JOIN

USING

ou une virgule selon les cas... (jointure interne...)


mais sur sqlfr, y a personne...


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
3
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
8 décembre 2005

ok coucou747, je m'explique mieux...

imagine:

Tu as une première requete qui inscrit un élément dans la base:

$sql = "INSERT INTO maTable1 (champ1 (l'id), champ2) VALUES ('', 'hélicoptère'); " ;

Ensuite, je veux récupérer l'id de cette inscription:

$sql2 = "SELECT champ1 FROM maTable1 WHERE champ2='hélicoptère'" ;

Puis j'inscrit un nouvel élément dans une autre table:

$sql3 = "INSERT INTO maTable2 (champ1 (l'id), champ2, champ3 (mon id récupérer avant)) VALUES ('', 'robot', 'id_recupérer_a_sql2') ;" ;

Donc voila, j'ai mes trois requête, donc tu vois bien que je n'ai pas besoin de les lier avec des left join ou autre...enfin je pense...
Mon but de cette discussion est de faire appel à deux requête au lieu de trois:

$sql1: je ne la touche pas.
$sql2 est, du coup, appelé dans $sql3...

J'aimerais avoir un truc du style:

$sql3 = "INSERT INTO maTable2 (champ1 (l'id), champ2, champ3 (mon id récupérer avant)) VALUES ('', 'robot', '".$sql2."') ;" ;

J'espère avoir été assez clair sur ce coup....


||-------------------------- p_i_x_l ------------------------------hé hé !-------------------------||
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Tu ne peux pas... Ou alors si ca marche (bien que je reste sceptique), ca va pas faire beau ca !

Nan très perso, je resterai en 3 requètes ...
Par contre en faite, non en 2 :

Ensuite, je veux récupérer l'id de cette inscription:

$sql2 = "SELECT champ1 FROM maTable1 WHERE champ2='hélicoptère'" ;

mysql_insert_id() pour récupérer l'id d'une inscription tout juste faite !