pb de requete sur plusieurs tables

pb de requete sur plusieurs tables - SQL/NoSQL - Programmation

Marsh Posté le 14-10-2010 à 13:02:34    

Bonjour,  
 
J'ai 2 tables :  
table1 avec les champs A1 & B  
table2 avec les champs A2 & C  
 
Sachant que A1 et A2 ont les mêmes valeurs.  
 
Je voudrais récuperer les valeurs de C à partir de "uneValeur" qui dans la table1 donne A1, qui donne A2 dans table2 qui permettrait de récupérer C dans table2 :  
 
select distinct C from table1, table2 WHERE A1=A2 AND B="uneValeur";  
 
mais ça ne marche pas :(

Reply

Marsh Posté le 14-10-2010 à 13:02:34   

Reply

Marsh Posté le 14-10-2010 à 14:23:53    

Pourquoi ça ne marche pas ? Y a-t-il un message d'erreur ?
 
Il faut mettre des simples apostrophes au lieu de guillemets autour de la chaine de caractère en SQL standard, mais il faut les guillemets si c'est du SQL pour Access.
 
Peut-être que les noms des champs sont les mêmes dans les deux tables. Dans ce cas, il faut utiliser préfixer le nom des champs avec le nom des tables pour lever l'ambiguité, par exemple si on a A et A au lieu de A1 et A2, il faudrait écrire : Select table1.C from table1, table2 where table1.A=table2.A and table1.B='une  valeur'.

Reply

Marsh Posté le 14-10-2010 à 14:24:50    

SELECT t2.C FROM table1 t1 INNER JOIN table2 t2 ON (t1.A1 = t2.A2) WHERE t1.B = "valeur" GROUP BY C
 
Pas de jointure dans le where et group by est plus rapide il me semble que le distinct pour obtenir à la fin des valeurs uniques dans le select.
Si ça marche pas, c'est que les valeurs dans tes 2 tables ne sont pas bonnes :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-10-2010 à 16:25:43    

Je m'étais trompé dans "maValeur", tout simplement,
ton aide n'as été vaine, car du coup,  j'ai cherché dans la bonne direction, merci.

Reply

Sujets relatifs:

Leave a Replay

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