Jointure SQL : pb syntaxe

Eléphanteau du PHP | 43 Messages

06 févr. 2006, 10:30

Bonjour,

je découvre les jointures et ai un peu de mal à bien écrire ma requête. voici ce que j'ai, et qui génère un message d'erreur SQL (je travaille avec EasyPHP 1.8 et la version de MySQL est 4.1.9) :
$query = "SELECT a.Code_ETB, a.Code_ENS, a.Code_RNE, b.Classe_affectation, b.Code_ENS FROM prov_ens1d_affectations AS a, prov_classes AS b WHERE a.Code_ENS = b.code_ENS";
Je n'arrive pas à trouver sur le web de référence précise sur la syntaxe de ce type de requête : pouvez-vous m'aider à trouver pourquoi ça ne marche pas ?

merci
Corinne

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 févr. 2006, 11:13

Est-ce que tu as un message d'erreur ou alors donne nous la raison qui te fait croire que ça ne marche pas
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

06 févr. 2006, 11:26

Au fait, il manque une majuscule à "b.code_ENS" (=> "b.Code_ENS"). Je ne sais pas si ça fait une différence auprès de ton SGBD.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 févr. 2006, 11:41

Je te suggère l'autre écriture pour les jointures,
en te recommandant, pour limiter les risques d'erreur,
de ne pas mélanger capitales et minuscules dans tes noms de champs.
$query  = "SELECT a.Code_ETB, a.Code_ENS, a.Code_RNE, b.Classe_affectation, b.Code_ENS ";
$query .= "FROM prov_ens1d_affectations a JOIN prov_classes b ON a.Code_ENS = b.Code_ENS";

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

06 févr. 2006, 11:42

ne pas mélanger capitales et minuscules dans tes noms de champs
Amen. J'avais pas osé le dire moi-même pour éviter de passer pour un nazi du formattage :lol:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 févr. 2006, 12:48

un nazi du formatage :lol:
Le but étant de simplifier avantageusement les écritures,
utiliser les bas de casse est un conseil à donner absolument.

Cependant, je préfère grandement parler d' "apôtres de la clarté et de la simplicité".
C'est tout de même plus flatteur... :lol:

et ça évite de se manger un point Godwin ! :langue:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

06 févr. 2006, 12:50

À titre de simple suggestion, voici l'écriture que j'emploierais
(tout en sachant que les goûts et les couleurs...) :
$query  = "SELECT A.code_etb, A.code_ens, A.code_rne, B.classe_affectation, B.code_ens ";
$query .= "FROM prov_ens1d_affectations A JOIN prov_classes B ON A.code_ens = B.code_ens";

ViPHP
ViPHP | 2144 Messages

06 févr. 2006, 12:55

En effet, moi je fais l'inverse, les noms sans underscore, mais avec une majuscule séparant les "mots" ex: codeEns.
(C'est la nomenclature habituelle en Java, donc pour simplifier j'utilise la même en php :D )

Eléphanteau du PHP | 43 Messages

06 févr. 2006, 13:01

Merci pour votre aide et vos conseils sur les définitions de champs. Du coup j'ai tout revu, et il y avait simplement une erreur dans le nom d'un champ. Désolée pour le dérangement.

Corinne