Problème requete SQL
Bonjour tout le monde !
J'ai besoin de votre matière grise ! Je débute en informatique et je n'arrive pas à réaliser une requête SQL, je m'explique je dois insérer des données dans une table associative provenant de deux tables différentes.
Table 1 : client
id_client
nom_client
pre_client
Table 2 : voiture
id_voiture
Marque
KM
energie
conso
prix
Table associative : achète
id_client_FK
id_voiture_FK
Je dois donc réaliser un INSERT dans la table associative "acheter" dont les valeurs proviennent de la table "client" et "voiture".
J'ai déjà réalisé :
INSERT (`id_client` ,`nom_client` ,`pre_client` )
VALUES ('0', 'Martin', 'Jean')
AND INSERT (`id_voiture` ,`marque` ,`KM` ,`energie` ,`conso` ,`prix` )
VALUES ('0', 'Peugeot', '60000', 'diesel', '2', '8000')
INTO acheter
et j'ai l'erreur :
#1064 - Erreur de syntaxe près de '(`id_client` ,`nom_client` ,`pre_client` )
VALUES ('0', 'Martin' à la ligne 1
DONC SVP aidé moi
Merci
J'ai besoin de votre matière grise ! Je débute en informatique et je n'arrive pas à réaliser une requête SQL, je m'explique je dois insérer des données dans une table associative provenant de deux tables différentes.
Table 1 : client
id_client
nom_client
pre_client
Table 2 : voiture
id_voiture
Marque
KM
energie
conso
prix
Table associative : achète
id_client_FK
id_voiture_FK
Je dois donc réaliser un INSERT dans la table associative "acheter" dont les valeurs proviennent de la table "client" et "voiture".
J'ai déjà réalisé :
INSERT (`id_client` ,`nom_client` ,`pre_client` )
VALUES ('0', 'Martin', 'Jean')
AND INSERT (`id_voiture` ,`marque` ,`KM` ,`energie` ,`conso` ,`prix` )
VALUES ('0', 'Peugeot', '60000', 'diesel', '2', '8000')
INTO acheter
et j'ai l'erreur :
#1064 - Erreur de syntaxe près de '(`id_client` ,`nom_client` ,`pre_client` )
VALUES ('0', 'Martin' à la ligne 1
DONC SVP aidé moi
Merci
Configuration: Windows Vista Firefox 2.0.0.14
2 réponses
-
Ca ne pourra pas marcher.
Ta table achete ne peut prendre que 2 valeurs et tu éssaye de lui en passer 9. -
Pourquoi tu ne fais pas :
"Insert into acheter values (0,0)";
Ou
"Insert into acheter (`id_client`,`id_voiture`) values (0,0)"
Après ça dépend si tu veux que tout se fasse tout seul ou pas. Parce qu'avec mes requêtes il va t'insérer 0 et 0 dans ta table acheter.-
-
@M@rieTu ne pourras pas insérer plus de champs que ta table n'en contient.
Soit tu drop et recréer ta table acheter avec les champs id_client` , `nom_client` , `pre_client`,`id_voiture`, `Marque` , ' ', `KM` , ' ', `energie` , ' ', `conso` , ' ', `prix`.
Soit tu n'insère que 2 valeurs (vu que tu as créée ta table avec 2 champs).
Quand à ta requête elle ne pourra pas marcher, parce que tu dis que tu vas insérer des valeurs dans les champs id_client` , `nom_client` , `pre_client`,`id_voiture`, `Marque` , ' ', `KM` , ' ', `energie` , ' ', `conso` , ' ', `prix` mais tu ne lui donne que 8 valeurs.
De plus pourquoi mettre '' comme champs ? Soit il y en a et tu les met, soit il n'y en a pas et tu ne les met pas. -
@M@rieBonjour,
je te conseil de supprimer ta table acheter et en la remplacant par une clé etrangère dans la table client.
CLIENT
id_client
nom_client
...
#id_voiture. -
@MrSlaveoui mais lorsque que j'éxécute la requete :
"Insert into acheter (`id_client`,`id_voiture`) values (0,0);"
j'ai :
Champ 'id_client' inconnu dans field list -
@M@rieC'est ma faute, j'ai copié-collé.
Enlève les ' '.
Ca donne : Insert into acheter (id_client,id_voiture) values (0,0);
Mais je le répète, tu auras 0 et 0 dans ta table.
-