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

Posté : 06 févr. 2006, 12:48
par albat
un nazi du formatage

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...
et ça évite de se manger un point Godwin ! 
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

)
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