à l'aide si vous plait

Fermé
w tamdy ayam Messages postés 18 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 2 juillet 2013 - 27 juin 2012 à 21:10
oliver3923 Messages postés 971 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 15 novembre 2014 - 27 juin 2012 à 22:08
Bonjour,
je voudrai fair une relation entre client et agence d'ou jai la dans la table de client : id_client,id_agence,nom_clien, prenom_client et agence: id_agence , nom_agence jai met sa mais ca marche pas ask vous pouvais m'aide

select client.id_client ,nom_client,client.Login, prenom_client ,adresse_client, solde ,n_compte,type_agence from solde,client ,administrateur ,compte,agence where solde.id_client= client.id_client and administrateur.Login = client.Login and client.id_client=compte.id_client and client.id_agence=agence.id_agence and client.Login ='Mohamed '
merci de votre attention

2 réponses

oliver3923 Messages postés 971 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 15 novembre 2014 143
27 juin 2012 à 21:19
bonjour

select client.id_client ,nom_client,client.Login, prenom_client ,adresse_client, solde ,n_compte,type_agence

tu sélectionne certains attributs (client.Login par exemple) que tu ne cite pas avant dans la liste de tes attributs et tables
as tu oublié de les mettre plus haut ou ils n'existent pas?

solde.id_client= client.id_client

ici tu essaies d'accéder a un attributs d'une table solde donc a nouveau est ce qu'elle existe?

sans oublié que tu n'as pas fait de jointure entre tes tables
autre chose tu as tout a fait le droit de faire ta requête sur 10 lignes donc autant en profiter c'est plus lisible
pareil je te conseille de mettre les mot clé en majuscule (par contre je sais pas si c'est accepté par tout les SGBD)

SELECT client.id_client ,nom_client,client.Login, prenom_client ,adresse_client, solde ,n_compte,type_agence
FROM solde,client ,administrateur ,compte,agence
WHERE solde.id_client= client.id_client
AND administrateur.Login = client.Login
AND client.id_client=compte.id_client
AND client.id_agence=agence.id_agence
AND client.Login ='Mohamed '


ps : je n'ai rien touché a la requête a part la remettre en forme pour qu'elle soit plus lisible

par contre je ne vois pas bien le but de ta requête et il y a surement des lignes inutiles la dedans

peux tu nous donner la liste des tables et surtout expliquer a quoi doit te servir ta requête?
0
w tamdy ayam Messages postés 18 Date d'inscription vendredi 21 août 2009 Statut Membre Dernière intervention 2 juillet 2013
27 juin 2012 à 21:50
salut ,
les table sont :

CREATE TABLE IF NOT EXISTS 'administrateur' (
'Login' varchar(10) NOT NULL,
'mot_passe' varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

banque : 'nom_banque'et 'id_banque'


agence :


'nom_agence'
'type_agence'
'id_agence'
'adresse postale_agence'
'id_banque'
PRIMARY KEY ('id_agence','id_banque')

compte
'n_compte'
'date_ouverture_compte'
'id_client'
PRIMARY KEY ('n_compte','id_client')
client
'id_client'
'nom_client'
'prenom_client'
'adresse_client'
'TEL'
'id_agence'
'Login'
PRIMARY KEY ('id_client','id_agence')

- je veux affiche un solde de client ;) bon jla affiche en fonction de nom et preno de client et son adresse plus le solde mais je veux faire une relation avec agence et son iD
mais ca marche pas avec la requet k jai , maffiche pas des erreur mais ca me donne pas le resultat k je veux !!
0
oliver3923 Messages postés 971 Date d'inscription vendredi 14 mai 2010 Statut Membre Dernière intervention 15 novembre 2014 143
27 juin 2012 à 22:08
tes clé primaires ne sont pas logiques (enfin je pense)
pourquoi met tu plusieurs attributs en clé primaire alors qu'un seul suffit?
par exemple pour agence id_agence te suffit comme clé primaire il suffit de définir l'id comme un numéro automatique pour ne pas avoir de doublons de ta clé primaire
pareil dans compte n_compte suffit, dans client il faut id_client



) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ca je ne connais pas a quoi ca sert?


dans ton create table tu ne définit pas de clé primaire et étrangère pour tes relations

ton attribut solde n'apparait nul part non plus (je suppose qu'il est dans la table compte)

pour la requête il faut que tu séléctionne nom prenom adresse (donc dans client) et solde (donc dans compte)

ensuite il te faut une jointure entre tes tables
pour ca utilise la clause inner join

pour ca le plus simple après ton select tu met
FROM table1 INNER JOIN table2
ON table1.att = table2.att

il faut évidemment que att dans table1 et table2 soient compatibles (donc la primaire d'une des tables et la clé étrangère (si jeme souviens bien) de la seconde table

ensuite tu peux mettre tes where and or...


pour ta requête tu auras besoin d'un select, d'une jointure entre client et compte (après avoir rajouté ton attribut solde si il est manquant dans ta bdd) puis d'une condition pour le nom

autre chose a quoi te sert ta table administrateur?
tu n'en a pas besoin pour cette requête en tout cas

voila je te laisse réfléchir a tout ca (la requête n'est pas compliquée a faire si je ne me trompe pas tu as :
SELECT...
FROM...
ON...
WHERE....
AND...

(pour faire ton select avec un nom et un prenom)
0