Page 1 sur 1

Jointure SQL : pb syntaxe

Posté : 06 févr. 2006, 10:30
par cmils
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

Posté : 06 févr. 2006, 11:13
par zeus
Est-ce que tu as un message d'erreur ou alors donne nous la raison qui te fait croire que ça ne marche pas

Posté : 06 févr. 2006, 11:26
par Hubert Roksor
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.

Posté : 06 févr. 2006, 11:41
par albat
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";

Posté : 06 févr. 2006, 11:42
par Hubert Roksor
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:

Posté : 06 févr. 2006, 12:48
par albat
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:

Posté : 06 févr. 2006, 12:50
par albat
À 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";

Posté : 06 févr. 2006, 12:55
par iclo
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 )

Posté : 06 févr. 2006, 13:01
par cmils
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