Jointure SQL ne fonctionne pas..

WRInaute impliqué
Bonsoir le forum

J'ai un probleme avec ma jointure :

voic le code :
Code:
$res = mysql_query("SELECT dem.NOM, dem.CP, part.CODEPOSTAL`' FROM dem INNER JOIN part ON dem.CP = 'substr(part.CODEPOSTAL,0,2)'") or die(mysql_error());
while($ligne = mysql_fetch_array($res)) { $id = $ligne["NOM"] or die(mysql_error());
echo "$id";
}

Le but du code est le suivant :

Dans la table dem, j'ai les variables suivantes :
NOM, CP et CODE_POSTAL
// (CP est le resultat de (dem.CODEPOSTAL,0,2)'

Dans la table part j'ai les variable suivantes :
PARTE
CODEPOSTAL

Je voudrais faire une comparaison entre dem.CP et part.CODEPOSTAL
si dem.CP = 'substr(part.CODEPOSTAL,0,2)'

alors s'affcihe le NOM de la table dem

Merci a tous.
 
WRInaute occasionnel
1- Caractères bizarres après part.CODEPOSTAL

2- Pas de quotes autour de substr(...) sinon tu testes que la valeur egale la chaine substr(...) plutot que le resultat de l'evaluation de cette fonction.

3- A moins que je n'ai pas compris le but de la requete, je ne comprends pas pourquoi la faire en jointure externe...

Je ferai :
Code:
$res = mysql_query("SELECT dem.NOM, dem.CP, part.CODEPOSTAL FROM dem WHERE dem.CP = substr(part.CODEPOSTAL,0,2)") or die(mysql_error());
while($ligne = mysql_fetch_array($res)) { $id = $ligne["NOM"] or die(mysql_error());
echo "$id";
}
 
WRInaute impliqué
Merci beaucoup pour ta réponse, j'ai laissé tombé le substr et remplace par une autre valeur correspondante a une colonne créée et cela fonctionne parfaitement.

Merci encore et bonne journée
 
Discussions similaires
Haut