[mysql] Join ?

Join ? [mysql] - SQL/NoSQL - Programmation

Marsh Posté le 18-10-2006 à 16:07:01    

Salut,
 
J'ai deux opérations à effectuer et il me semble que je pourrais faire ça en une seule requete :
 

Code :
  1. Select a.b_id FROM a WHERE a.id = xxx


 
Puis si cette requete renvoie un élément,
 

Code :
  1. select b.champ FROM b WHERE b.id = a.b_id


 
 
Je vois pas comment mettre ça dans une seule requête, je suis parti sur un LEFT JOIN mais ça me renvoie un b même si y'a pas de a :/
 
Merci :)

Reply

Marsh Posté le 18-10-2006 à 16:07:01   

Reply

Marsh Posté le 18-10-2006 à 16:15:15    

select b.champs from a inner join b on a.b_id=b.id where a.id=xxx

Reply

Marsh Posté le 18-10-2006 à 16:18:25    

anapajari a écrit :

select b.champs from a inner join b on a.b_id=b.id where a.id=xxx


 
 [:nfshp2] autoinfligé pour question con, être une quiche en (my)sql...
 
Merci, ça voulait pas venir...


Message édité par gooopil le 18-10-2006 à 16:19:45
Reply

Marsh Posté le 18-10-2006 à 16:34:22    

anapajari a écrit :

select b.champs from a inner join b on a.b_id=b.id where a.id=xxx


 
Ben ouais, mais non  :heink: , ca me renvoie exactement la même chose qu'avec mon left join :/

Reply

Marsh Posté le 18-10-2006 à 16:45:21    

Code :
  1. Select a.b_id, b.champ ...

le reste est identique à ce que t'as donné anapajari.
 
Et si c'est pas ça, alors explique mieux. ;)

Reply

Marsh Posté le 18-10-2006 à 17:08:48    

omega2 a écrit :

Code :
  1. Select a.b_id, b.champ ...

le reste est identique à ce que t'as donné anapajari.
 
Et si c'est pas ça, alors explique mieux. ;)


 
Vais détailler un peu plus.
Je vais arrêter les a et b, ça sera moins confusant:
 
Deux tables :
obj : obj_id, obj_nom...
objpce : objpce_id, objpce_obj_id, ...
 
Pour l'instant le code que j'ai c'est tout simplement  
 

Code :
  1. select objpce_obj_id from objpce where objpce_id = xxx


Si ca me renvoie un enregistrement :

Code :
  1. select obj_nom ... from objet where obj_id = l'obj_id récupéré avant.


 
Et j'essaye de faire ça en une seule requete :

Code :
  1. SELECT objpce_obj_id, obj_nom
  2. FROM objetpiece
  3. INNER JOIN objet ON objpce_obj_id = obj_id
  4. WHERE objpce_id = '1'


Si pas de réponse, pas de objpce avec l'id fournie  
Sinon je récupère mon obj
 
Mais ça me renvoie un obj même si l'id n'existe pas...Par contre si l'id existe, ça fonctionne...
 
C'est plus mieux clair  [:petrus dei]

Reply

Marsh Posté le 18-10-2006 à 17:11:17    

THIS IS NOT TEH POSSIBLE!!!
Nan mais tu dois merdé quelque part...
 
y'a moyen d'avoir un jeu d'essai, et que tu nous montres lequel ne devrait pas remonter?

Reply

Marsh Posté le 18-10-2006 à 17:30:38    

anapajari a écrit :

THIS IS NOT TEH POSSIBLE!!!
Nan mais tu dois merdé quelque part...
 
y'a moyen d'avoir un jeu d'essai, et que tu nous montres lequel ne devrait pas remonter?


 
Je pense que je viens de prouver que j'ai merdé quelque part : J'ai rien changé à la requete avec le inner, je l'ai réenvoyée...Et maintenant ça marche...
 
C'est quand même pas mon cerveau qui a confondu  
"MySQL returned an empty result set " avec "Showing rows 0 - 0 (1 total, Query took 0.0001 sec)"
 
... Bug de cerveau ?  [:jagstang]
 
Merci donc  :jap:


Message édité par gooopil le 18-10-2006 à 17:33:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed